@abp/ng.components 10.0.3 → 10.1.0-rc.2

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":"abp-ng.components-tree.mjs","sources":["../tmp-esm2022/tree/lib/disable-tree-style-loading.token.js","../tmp-esm2022/tree/lib/templates/tree-node-template.directive.js","../tmp-esm2022/tree/lib/templates/expanded-icon-template.directive.js","../tmp-esm2022/tree/lib/components/tree.component.js","../tmp-esm2022/tree/lib/tree.module.js","../tmp-esm2022/tree/lib/utils/nz-tree-adapter.js","../tmp-esm2022/tree/abp-ng.components-tree.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken('DISABLE_TREE_STYLE_LOADING_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS10cmVlLXN0eWxlLWxvYWRpbmcudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUvc3JjL2xpYi9kaXNhYmxlLXRyZWUtc3R5bGUtbG9hZGluZy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUNoRSxrQ0FBa0MsQ0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgRElTQUJMRV9UUkVFX1NUWUxFX0xPQURJTkdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oXHJcbiAgJ0RJU0FCTEVfVFJFRV9TVFlMRV9MT0FESU5HX1RPS0VOJyxcclxuKTtcclxuIl19","import { Directive, TemplateRef, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TreeNodeTemplateDirective {\n constructor() {\n this.template = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeNodeTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: TreeNodeTemplateDirective, isStandalone: true, selector: \"[abpTreeNodeTemplate],[abp-tree-node-template]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeNodeTemplateDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS9zcmMvbGliL3RlbXBsYXRlcy90cmVlLW5vZGUtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLL0QsTUFBTSxPQUFPLHlCQUF5QjtJQUh0QztRQUlFLGFBQVEsR0FBRyxNQUFNLENBQW1CLFdBQVcsQ0FBQyxDQUFDO0tBRWxEOzhHQUhZLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnREFBZ0Q7aUJBQzNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBUcmVlTm9kZVRlbXBsYXRlXSxbYWJwLXRyZWUtbm9kZS10ZW1wbGF0ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVUZW1wbGF0ZURpcmVjdGl2ZSB7XHIgIHRlbXBsYXRlID0gaW5qZWN0PFRlbXBsYXRlUmVmPGFueT4+KFRlbXBsYXRlUmVmKTtcblxufVxyXG4iXX0=","import { Directive, TemplateRef, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ExpandedIconTemplateDirective {\n constructor() {\n this.template = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExpandedIconTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: ExpandedIconTemplateDirective, isStandalone: true, selector: \"[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExpandedIconTemplateDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtaWNvbi10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUvc3JjL2xpYi90ZW1wbGF0ZXMvZXhwYW5kZWQtaWNvbi10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUsvRCxNQUFNLE9BQU8sNkJBQTZCO0lBSDFDO1FBSUUsYUFBUSxHQUFHLE1BQU0sQ0FBbUIsV0FBVyxDQUFDLENBQUM7S0FFbEQ7OEdBSFksNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlFQUFpRTtpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FicFRyZWVFeHBhbmRlZEljb25UZW1wbGF0ZV0sW2FicC10cmVlLWV4cGFuZGVkLWljb24tdGVtcGxhdGVdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cGFuZGVkSWNvblRlbXBsYXRlRGlyZWN0aXZlIHtcciAgdGVtcGxhdGUgPSBpbmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4oVGVtcGxhdGVSZWYpO1xuXG59XHJcbiJdfQ==","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, inject, Input, Output, TemplateRef, ViewEncapsulation, } from '@angular/core';\nimport { NgbDropdown, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap';\nimport { NzTreeComponent, } from 'ng-zorro-antd/tree';\nimport { InitDirective, LazyLoadService, LOADING_STRATEGY, SubscriptionService, } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { DISABLE_TREE_STYLE_LOADING_TOKEN } from '../disable-tree-style-loading.token';\nimport { TreeNodeTemplateDirective } from '../templates/tree-node-template.directive';\nimport { ExpandedIconTemplateDirective } from '../templates/expanded-icon-template.directive';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport * as i0 from \"@angular/core\";\nexport class TreeComponent {\n constructor() {\n this.lazyLoadService = inject(LazyLoadService);\n this.subscriptionService = inject(SubscriptionService);\n this.cdr = inject(ChangeDetectorRef);\n this.disableTreeStyleLoading = inject(DISABLE_TREE_STYLE_LOADING_TOKEN, { optional: true });\n this.dropdowns = {};\n this.checkedKeysChange = new EventEmitter();\n this.expandedKeysChange = new EventEmitter();\n this.selectedNodeChange = new EventEmitter();\n this.dropOver = new EventEmitter();\n this.nzExpandChange = new EventEmitter();\n this.noAnimation = true;\n this.checkedKeys = [];\n this.nodes = [];\n this.expandedKeys = [];\n this.isNodeSelected = node => this.selectedNode?.id === node.key;\n this.beforeDrop = (event) => {\n this.dropPosition = event.pos;\n return of(false);\n };\n }\n ngOnInit() {\n this.loadStyle();\n }\n loadStyle() {\n if (this.disableTreeStyleLoading) {\n return;\n }\n const loaded$ = this.lazyLoadService.load(LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'));\n this.subscriptionService.addOne(loaded$);\n }\n findNode(target, nodes) {\n for (const node of nodes) {\n if (node.key === target.id) {\n return node;\n }\n if (node.children) {\n const res = this.findNode(target, node.children);\n if (res) {\n return res;\n }\n }\n }\n return null;\n }\n onSelectedNodeChange(node) {\n this.selectedNode = node.origin.entity;\n if (this.changeCheckboxWithNode) {\n let newVal;\n if (node.isChecked) {\n newVal = this.checkedKeys.filter(x => x !== node.key);\n }\n else {\n newVal = [...this.checkedKeys, node.key];\n }\n this.selectedNodeChange.emit(node);\n this.checkedKeys = newVal;\n this.checkedKeysChange.emit(newVal);\n }\n else {\n this.selectedNodeChange.emit(node.origin.entity);\n }\n }\n onCheckboxChange(event) {\n this.checkedKeys = [...event.keys];\n this.checkedKeysChange.emit(event.keys);\n }\n onExpandedKeysChange(event) {\n this.expandedKeys = [...event.keys];\n this.expandedKeysChange.emit(event.keys);\n this.nzExpandChange.emit(event);\n }\n onDrop(event) {\n event.event.stopPropagation();\n event.event.preventDefault();\n event.pos = this.dropPosition;\n this.dropOver.emit(event);\n }\n initDropdown(key, dropdown) {\n this.dropdowns[key] = dropdown;\n }\n onContextMenuChange(event) {\n const dropdownKey = event.node?.key;\n Object.entries(this.dropdowns).forEach(([key, dropdown]) => {\n if (key !== dropdownKey && dropdown?.isOpen()) {\n dropdown.close();\n }\n });\n this.dropdowns[dropdownKey]?.toggle();\n }\n setSelectedNode(node) {\n const newSelectedNode = this.findNode(node, this.nodes);\n this.selectedNode = { ...newSelectedNode };\n this.cdr.markForCheck();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: TreeComponent, isStandalone: true, selector: \"abp-tree\", inputs: { noAnimation: \"noAnimation\", draggable: \"draggable\", checkable: \"checkable\", checkStrictly: \"checkStrictly\", checkedKeys: \"checkedKeys\", nodes: \"nodes\", expandedKeys: \"expandedKeys\", selectedNode: \"selectedNode\", changeCheckboxWithNode: \"changeCheckboxWithNode\", isNodeSelected: \"isNodeSelected\", beforeDrop: \"beforeDrop\" }, outputs: { checkedKeysChange: \"checkedKeysChange\", expandedKeysChange: \"expandedKeysChange\", selectedNodeChange: \"selectedNodeChange\", dropOver: \"dropOver\", nzExpandChange: \"nzExpandChange\" }, providers: [SubscriptionService], queries: [{ propertyName: \"menu\", first: true, predicate: [\"menu\"], descendants: true }, { propertyName: \"customNodeTemplate\", first: true, predicate: TreeNodeTemplateDirective, descendants: true }, { propertyName: \"expandedIconTemplate\", first: true, predicate: ExpandedIconTemplateDirective, descendants: true }], ngImport: i0, template: \"<nz-tree\\r\\n [nzBeforeDrop]=\\\"beforeDrop\\\"\\r\\n [nzDraggable]=\\\"draggable\\\"\\r\\n [nzCheckStrictly]=\\\"checkStrictly\\\"\\r\\n [nzCheckable]=\\\"checkable\\\"\\r\\n [nzCheckedKeys]=\\\"checkedKeys\\\"\\r\\n [nzData]=\\\"nodes\\\"\\r\\n [nzTreeTemplate]=\\\"treeTemplate\\\"\\r\\n [nzExpandedKeys]=\\\"expandedKeys\\\"\\r\\n [nzExpandedIcon]=\\\"expandedIconTemplate?.template || defaultIconTemplate\\\"\\r\\n (nzExpandChange)=\\\"onExpandedKeysChange($event)\\\"\\r\\n (nzCheckboxChange)=\\\"onCheckboxChange($event)\\\"\\r\\n (nzOnDrop)=\\\"onDrop($event)\\\"\\r\\n [nzNoAnimation]=\\\"noAnimation\\\"\\r\\n (nzContextMenu)=\\\"onContextMenuChange($event)\\\"\\r\\n/>\\r\\n<ng-template #treeTemplate let-node>\\r\\n <div\\r\\n [class.selected]=\\\"isNodeSelected(node)\\\"\\r\\n [title]=\\\"node.title\\\"\\r\\n (click)=\\\"onSelectedNodeChange(node)\\\"\\r\\n >\\r\\n <ng-container *ngTemplateOutlet=\\\"nodeTemplate; context: { $implicit: node }\\\" />\\r\\n\\r\\n <ng-template #nodeTemplate let-node>\\r\\n <div class=\\\"d-inline-flex align-items-center abp-ellipsis-inline\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"\\r\\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\\r\\n context: { $implicit: node }\\r\\n \\\"\\r\\n />\\r\\n </div>\\r\\n\\r\\n @if (menu) {\\r\\n <div\\r\\n #dropdown=\\\"ngbDropdown\\\"\\r\\n class=\\\"d-inline-block ms-1\\\"\\r\\n ngbDropdown\\r\\n placement=\\\"bottom\\\"\\r\\n container=\\\"body\\\"\\r\\n (abpInit)=\\\"initDropdown(node.key, dropdown)\\\"\\r\\n >\\r\\n <i\\r\\n class=\\\"fas fa-caret-down text-muted\\\"\\r\\n ngbDropdownToggle\\r\\n [class.dropdown-toggle]=\\\"false\\\"\\r\\n aria-hidden=\\\"true\\\"\\r\\n ></i>\\r\\n <div ngbDropdownMenu>\\r\\n <ng-template *ngTemplateOutlet=\\\"menu; context: { $implicit: node }\\\" />\\r\\n </div>\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n\\r\\n <ng-template #defaultNodeTemplate let-node>\\r\\n <span>{{ node.title }}</span>\\r\\n </ng-template>\\r\\n </div>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #defaultIconTemplate let-node let-origin=\\\"origin\\\">\\r\\n <i aria-hidden=\\\"true\\\">\\r\\n <ng-container *ngTemplateOutlet=\\\"node.isExpanded ? minusIcon : plusIcon\\\"\\r\\n /></i>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #minusIcon>\\r\\n <svg\\r\\n width=\\\"15\\\"\\r\\n height=\\\"15\\\"\\r\\n viewBox=\\\"0 0 24 24\\\"\\r\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\r\\n fill-rule=\\\"evenodd\\\"\\r\\n clip-rule=\\\"evenodd\\\"\\r\\n >\\r\\n <path\\r\\n d=\\\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\\\"\\r\\n />\\r\\n </svg>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #plusIcon>\\r\\n <svg\\r\\n width=\\\"15\\\"\\r\\n height=\\\"15\\\"\\r\\n viewBox=\\\"0 0 24 24\\\"\\r\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\r\\n fill-rule=\\\"evenodd\\\"\\r\\n clip-rule=\\\"evenodd\\\"\\r\\n >\\r\\n <path\\r\\n d=\\\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\\\"\\r\\n />\\r\\n </svg>\\r\\n</ng-template>\\r\\n\", styles: [\"abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .ant-tree-node-content-wrapper>div{display:flex;padding-right:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: NzTreeComponent, selector: \"nz-tree\", inputs: [\"nzShowIcon\", \"nzHideUnMatched\", \"nzBlockNode\", \"nzExpandAll\", \"nzSelectMode\", \"nzCheckStrictly\", \"nzShowExpand\", \"nzShowLine\", \"nzCheckable\", \"nzAsyncData\", \"nzDraggable\", \"nzMultiple\", \"nzExpandedIcon\", \"nzVirtualItemSize\", \"nzVirtualMaxBufferPx\", \"nzVirtualMinBufferPx\", \"nzVirtualHeight\", \"nzTreeTemplate\", \"nzBeforeDrop\", \"nzData\", \"nzExpandedKeys\", \"nzSelectedKeys\", \"nzCheckedKeys\", \"nzSearchValue\", \"nzSearchFunc\"], outputs: [\"nzExpandedKeysChange\", \"nzSelectedKeysChange\", \"nzCheckedKeysChange\", \"nzSearchValueChange\", \"nzClick\", \"nzDblClick\", \"nzContextMenu\", \"nzCheckboxChange\", \"nzExpandChange\", \"nzOnDragStart\", \"nzOnDragEnter\", \"nzOnDragOver\", \"nzOnDragLeave\", \"nzOnDrop\", \"nzOnDragEnd\"], exportAs: [\"nzTree\"] }, { kind: \"directive\", type: NgbDropdown, selector: \"[ngbDropdown]\", inputs: [\"autoClose\", \"dropdownClass\", \"open\", \"placement\", \"popperOptions\", \"container\", \"display\"], outputs: [\"openChange\"], exportAs: [\"ngbDropdown\"] }, { kind: \"directive\", type: NgbDropdownMenu, selector: \"[ngbDropdownMenu]\" }, { kind: \"directive\", type: NgbDropdownToggle, selector: \"[ngbDropdownToggle]\" }, { kind: \"directive\", type: InitDirective, selector: \"[abpInit]\", outputs: [\"abpInit\"] }, { kind: \"directive\", type: NzNoAnimationDirective, selector: \"[nzNoAnimation]\", inputs: [\"nzNoAnimation\"], exportAs: [\"nzNoAnimation\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'abp-tree', encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n NgTemplateOutlet,\n NzTreeComponent,\n NgbDropdown,\n NgbDropdownMenu,\n NgbDropdownToggle,\n InitDirective,\n NzNoAnimationDirective,\n ], template: \"<nz-tree\\r\\n [nzBeforeDrop]=\\\"beforeDrop\\\"\\r\\n [nzDraggable]=\\\"draggable\\\"\\r\\n [nzCheckStrictly]=\\\"checkStrictly\\\"\\r\\n [nzCheckable]=\\\"checkable\\\"\\r\\n [nzCheckedKeys]=\\\"checkedKeys\\\"\\r\\n [nzData]=\\\"nodes\\\"\\r\\n [nzTreeTemplate]=\\\"treeTemplate\\\"\\r\\n [nzExpandedKeys]=\\\"expandedKeys\\\"\\r\\n [nzExpandedIcon]=\\\"expandedIconTemplate?.template || defaultIconTemplate\\\"\\r\\n (nzExpandChange)=\\\"onExpandedKeysChange($event)\\\"\\r\\n (nzCheckboxChange)=\\\"onCheckboxChange($event)\\\"\\r\\n (nzOnDrop)=\\\"onDrop($event)\\\"\\r\\n [nzNoAnimation]=\\\"noAnimation\\\"\\r\\n (nzContextMenu)=\\\"onContextMenuChange($event)\\\"\\r\\n/>\\r\\n<ng-template #treeTemplate let-node>\\r\\n <div\\r\\n [class.selected]=\\\"isNodeSelected(node)\\\"\\r\\n [title]=\\\"node.title\\\"\\r\\n (click)=\\\"onSelectedNodeChange(node)\\\"\\r\\n >\\r\\n <ng-container *ngTemplateOutlet=\\\"nodeTemplate; context: { $implicit: node }\\\" />\\r\\n\\r\\n <ng-template #nodeTemplate let-node>\\r\\n <div class=\\\"d-inline-flex align-items-center abp-ellipsis-inline\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"\\r\\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\\r\\n context: { $implicit: node }\\r\\n \\\"\\r\\n />\\r\\n </div>\\r\\n\\r\\n @if (menu) {\\r\\n <div\\r\\n #dropdown=\\\"ngbDropdown\\\"\\r\\n class=\\\"d-inline-block ms-1\\\"\\r\\n ngbDropdown\\r\\n placement=\\\"bottom\\\"\\r\\n container=\\\"body\\\"\\r\\n (abpInit)=\\\"initDropdown(node.key, dropdown)\\\"\\r\\n >\\r\\n <i\\r\\n class=\\\"fas fa-caret-down text-muted\\\"\\r\\n ngbDropdownToggle\\r\\n [class.dropdown-toggle]=\\\"false\\\"\\r\\n aria-hidden=\\\"true\\\"\\r\\n ></i>\\r\\n <div ngbDropdownMenu>\\r\\n <ng-template *ngTemplateOutlet=\\\"menu; context: { $implicit: node }\\\" />\\r\\n </div>\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n\\r\\n <ng-template #defaultNodeTemplate let-node>\\r\\n <span>{{ node.title }}</span>\\r\\n </ng-template>\\r\\n </div>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #defaultIconTemplate let-node let-origin=\\\"origin\\\">\\r\\n <i aria-hidden=\\\"true\\\">\\r\\n <ng-container *ngTemplateOutlet=\\\"node.isExpanded ? minusIcon : plusIcon\\\"\\r\\n /></i>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #minusIcon>\\r\\n <svg\\r\\n width=\\\"15\\\"\\r\\n height=\\\"15\\\"\\r\\n viewBox=\\\"0 0 24 24\\\"\\r\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\r\\n fill-rule=\\\"evenodd\\\"\\r\\n clip-rule=\\\"evenodd\\\"\\r\\n >\\r\\n <path\\r\\n d=\\\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\\\"\\r\\n />\\r\\n </svg>\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #plusIcon>\\r\\n <svg\\r\\n width=\\\"15\\\"\\r\\n height=\\\"15\\\"\\r\\n viewBox=\\\"0 0 24 24\\\"\\r\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\r\\n fill-rule=\\\"evenodd\\\"\\r\\n clip-rule=\\\"evenodd\\\"\\r\\n >\\r\\n <path\\r\\n d=\\\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\\\"\\r\\n />\\r\\n </svg>\\r\\n</ng-template>\\r\\n\", styles: [\"abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .ant-tree-node-content-wrapper>div{display:flex;padding-right:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\\n\"] }]\n }], propDecorators: { menu: [{\n type: ContentChild,\n args: ['menu']\n }], customNodeTemplate: [{\n type: ContentChild,\n args: [TreeNodeTemplateDirective]\n }], expandedIconTemplate: [{\n type: ContentChild,\n args: [ExpandedIconTemplateDirective]\n }], checkedKeysChange: [{\n type: Output\n }], expandedKeysChange: [{\n type: Output\n }], selectedNodeChange: [{\n type: Output\n }], dropOver: [{\n type: Output\n }], nzExpandChange: [{\n type: Output\n }], noAnimation: [{\n type: Input\n }], draggable: [{\n type: Input\n }], checkable: [{\n type: Input\n }], checkStrictly: [{\n type: Input\n }], checkedKeys: [{\n type: Input\n }], nodes: [{\n type: Input\n }], expandedKeys: [{\n type: Input\n }], selectedNode: [{\n type: Input\n }], changeCheckboxWithNode: [{\n type: Input\n }], isNodeSelected: [{\n type: Input\n }], beforeDrop: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUvc3JjL2xpYi9jb21wb25lbnRzL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlL3NyYy9saWIvY29tcG9uZW50cy90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RixPQUFPLEVBR0wsZUFBZSxHQUVoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFxQnpFLE1BQU0sT0FBTyxhQUFhO0lBakIxQjtRQWtCVSxvQkFBZSxHQUFH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QUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixzQkFBc0I7cUJBQ3ZCOzhCQVlxQixJQUFJO3NCQUF6QixZQUFZO3VCQUFDLE1BQU07Z0JBQ3FCLGtCQUFrQjtzQkFBMUQsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBQ00sb0JBQW9CO3NCQUFoRSxZQUFZO3VCQUFDLDZCQUE2QjtnQkFDeEIsaUJBQWlCO3NCQUFuQyxNQUFNO2dCQUNZLGtCQUFrQjtzQkFBcEMsTUFBTTtnQkFDWSxrQkFBa0I7c0JBQXBDLE1BQU07Z0JBQ1ksUUFBUTtzQkFBMUIsTUFBTTtnQkFDWSxjQUFjO3NCQUFoQyxNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEcm9wZG93biwgTmdiRHJvcGRvd25NZW51LCBOZ2JEcm9wZG93blRvZ2dsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtcclxuICBOekZvcm1hdEJlZm9yZURyb3BFdmVudCxcclxuICBOekZvcm1hdEVtaXRFdmVudCxcclxuICBOelRyZWVDb21wb25lbnQsXHJcbiAgTnpUcmVlTm9kZSxcclxufSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xyXG5pbXBvcnQge1xyXG4gIEluaXREaXJlY3RpdmUsXHJcbiAgTGF6eUxvYWRTZXJ2aWNlLFxyXG4gIExPQURJTkdfU1RSQVRFR1ksXHJcbiAgU3Vic2NyaXB0aW9uU2VydmljZSxcclxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBESVNBQkxFX1RSRUVfU1RZTEVfTE9BRElOR19UT0tFTiB9IGZyb20gJy4uL2Rpc2FibGUtdHJlZS1zdHlsZS1sb2FkaW5nLnRva2VuJztcclxuaW1wb3J0IHsgVHJlZU5vZGVUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL3RlbXBsYXRlcy90cmVlLW5vZGUtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXhwYW5kZWRJY29uVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi90ZW1wbGF0ZXMvZXhwYW5kZWQtaWNvbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTnpOb0FuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS9uby1hbmltYXRpb24nO1xyXG5cclxuZXhwb3J0IHR5cGUgRHJvcEV2ZW50ID0gTnpGb3JtYXRFbWl0RXZlbnQgJiB7IHBvczogbnVtYmVyIH07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJ3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmVlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTnpUcmVlQ29tcG9uZW50LFxyXG4gICAgTmdiRHJvcGRvd24sXHJcbiAgICBOZ2JEcm9wZG93bk1lbnUsXHJcbiAgICBOZ2JEcm9wZG93blRvZ2dsZSxcclxuICAgIEluaXREaXJlY3RpdmUsXHJcbiAgICBOek5vQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIGxhenlMb2FkU2VydmljZSA9IGluamVjdChMYXp5TG9hZFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uU2VydmljZSA9IGluamVjdChTdWJzY3JpcHRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBkaXNhYmxlVHJlZVN0eWxlTG9hZGluZyA9IGluamVjdChESVNBQkxFX1RSRUVfU1RZTEVfTE9BRElOR19UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuXHJcbiAgZHJvcFBvc2l0aW9uOiBudW1iZXI7XHJcblxyXG4gIGRyb3Bkb3ducyA9IHt9IGFzIHsgW2tleTogc3RyaW5nXTogTmdiRHJvcGRvd24gfTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnbWVudScpIG1lbnU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZChUcmVlTm9kZVRlbXBsYXRlRGlyZWN0aXZlKSBjdXN0b21Ob2RlVGVtcGxhdGU6IFRyZWVOb2RlVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChFeHBhbmRlZEljb25UZW1wbGF0ZURpcmVjdGl2ZSkgZXhwYW5kZWRJY29uVGVtcGxhdGU6IEV4cGFuZGVkSWNvblRlbXBsYXRlRGlyZWN0aXZlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGVja2VkS2V5c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwYW5kZWRLZXlzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWROb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBkcm9wT3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8RHJvcEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBuekV4cGFuZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnpGb3JtYXRFbWl0RXZlbnQ+KCk7XHJcbiAgQElucHV0KCkgbm9BbmltYXRpb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRyYWdnYWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjaGVja2FibGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY2hlY2tTdHJpY3RseTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjaGVja2VkS2V5cyA9IFtdO1xyXG4gIEBJbnB1dCgpIG5vZGVzID0gW107XHJcbiAgQElucHV0KCkgZXhwYW5kZWRLZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkTm9kZTogYW55O1xyXG4gIEBJbnB1dCgpIGNoYW5nZUNoZWNrYm94V2l0aE5vZGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNOb2RlU2VsZWN0ZWQgPSBub2RlID0+IHRoaXMuc2VsZWN0ZWROb2RlPy5pZCA9PT0gbm9kZS5rZXk7XHJcbiAgQElucHV0KCkgYmVmb3JlRHJvcCA9IChldmVudDogTnpGb3JtYXRCZWZvcmVEcm9wRXZlbnQpID0+IHtcclxuICAgIHRoaXMuZHJvcFBvc2l0aW9uID0gZXZlbnQucG9zO1xyXG4gICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICB9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZFN0eWxlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRTdHlsZSgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVUcmVlU3R5bGVMb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGxvYWRlZCQgPSB0aGlzLmxhenlMb2FkU2VydmljZS5sb2FkKFxyXG4gICAgICBMT0FESU5HX1NUUkFURUdZLkFwcGVuZEFub255bW91c1N0eWxlVG9IZWFkKCduZy16b3Jyby1hbnRkLXRyZWUuY3NzJyksXHJcbiAgICApO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TZXJ2aWNlLmFkZE9uZShsb2FkZWQkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZE5vZGUodGFyZ2V0OiBhbnksIG5vZGVzOiBhbnlbXSkge1xyXG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcbiAgICAgIGlmIChub2RlLmtleSA9PT0gdGFyZ2V0LmlkKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBjb25zdCByZXMgPSB0aGlzLmZpbmROb2RlKHRhcmdldCwgbm9kZS5jaGlsZHJlbik7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZE5vZGVDaGFuZ2Uobm9kZTogTnpUcmVlTm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlLm9yaWdpbi5lbnRpdHk7XHJcbiAgICBpZiAodGhpcy5jaGFuZ2VDaGVja2JveFdpdGhOb2RlKSB7XHJcbiAgICAgIGxldCBuZXdWYWw7XHJcbiAgICAgIGlmIChub2RlLmlzQ2hlY2tlZCkge1xyXG4gICAgICAgIG5ld1ZhbCA9IHRoaXMuY2hlY2tlZEtleXMuZmlsdGVyKHggPT4geCAhPT0gbm9kZS5rZXkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld1ZhbCA9IFsuLi50aGlzLmNoZWNrZWRLZXlzLCBub2RlLmtleV07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZE5vZGVDaGFuZ2UuZW1pdChub2RlKTtcclxuICAgICAgdGhpcy5jaGVja2VkS2V5cyA9IG5ld1ZhbDtcclxuICAgICAgdGhpcy5jaGVja2VkS2V5c0NoYW5nZS5lbWl0KG5ld1ZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZUNoYW5nZS5lbWl0KG5vZGUub3JpZ2luLmVudGl0eSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoZWNrYm94Q2hhbmdlKGV2ZW50KSB7XHJcbiAgICB0aGlzLmNoZWNrZWRLZXlzID0gWy4uLmV2ZW50LmtleXNdO1xyXG4gICAgdGhpcy5jaGVja2VkS2V5c0NoYW5nZS5lbWl0KGV2ZW50LmtleXMpO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmRlZEtleXNDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuZXhwYW5kZWRLZXlzID0gWy4uLmV2ZW50LmtleXNdO1xyXG4gICAgdGhpcy5leHBhbmRlZEtleXNDaGFuZ2UuZW1pdChldmVudC5rZXlzKTtcclxuICAgIHRoaXMubnpFeHBhbmRDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IERyb3BFdmVudCkge1xyXG4gICAgZXZlbnQuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQucG9zID0gdGhpcy5kcm9wUG9zaXRpb247XHJcblxyXG4gICAgdGhpcy5kcm9wT3Zlci5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGluaXREcm9wZG93bihrZXk6IHN0cmluZywgZHJvcGRvd246IE5nYkRyb3Bkb3duKSB7XHJcbiAgICB0aGlzLmRyb3Bkb3duc1trZXldID0gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBvbkNvbnRleHRNZW51Q2hhbmdlKGV2ZW50OiBOekZvcm1hdEVtaXRFdmVudCkge1xyXG4gICAgY29uc3QgZHJvcGRvd25LZXkgPSBldmVudC5ub2RlPy5rZXk7XHJcblxyXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5kcm9wZG93bnMpLmZvckVhY2goKFtrZXksIGRyb3Bkb3duXSkgPT4ge1xyXG4gICAgICBpZiAoa2V5ICE9PSBkcm9wZG93bktleSAmJiBkcm9wZG93bj8uaXNPcGVuKCkpIHtcclxuICAgICAgICBkcm9wZG93bi5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZHJvcGRvd25zW2Ryb3Bkb3duS2V5XT8udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZE5vZGUobm9kZTogYW55KSB7XHJcbiAgICBjb25zdCBuZXdTZWxlY3RlZE5vZGUgPSB0aGlzLmZpbmROb2RlKG5vZGUsIHRoaXMubm9kZXMpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB7IC4uLm5ld1NlbGVjdGVkTm9kZSB9O1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuei10cmVlXHJcbiAgW256QmVmb3JlRHJvcF09XCJiZWZvcmVEcm9wXCJcclxuICBbbnpEcmFnZ2FibGVdPVwiZHJhZ2dhYmxlXCJcclxuICBbbnpDaGVja1N0cmljdGx5XT1cImNoZWNrU3RyaWN0bHlcIlxyXG4gIFtuekNoZWNrYWJsZV09XCJjaGVja2FibGVcIlxyXG4gIFtuekNoZWNrZWRLZXlzXT1cImNoZWNrZWRLZXlzXCJcclxuICBbbnpEYXRhXT1cIm5vZGVzXCJcclxuICBbbnpUcmVlVGVtcGxhdGVdPVwidHJlZVRlbXBsYXRlXCJcclxuICBbbnpFeHBhbmRlZEtleXNdPVwiZXhwYW5kZWRLZXlzXCJcclxuICBbbnpFeHBhbmRlZEljb25dPVwiZXhwYW5kZWRJY29uVGVtcGxhdGU/LnRlbXBsYXRlIHx8IGRlZmF1bHRJY29uVGVtcGxhdGVcIlxyXG4gIChuekV4cGFuZENoYW5nZSk9XCJvbkV4cGFuZGVkS2V5c0NoYW5nZSgkZXZlbnQpXCJcclxuICAobnpDaGVja2JveENoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKCRldmVudClcIlxyXG4gIChuek9uRHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgW256Tm9BbmltYXRpb25dPVwibm9BbmltYXRpb25cIlxyXG4gIChuekNvbnRleHRNZW51KT1cIm9uQ29udGV4dE1lbnVDaGFuZ2UoJGV2ZW50KVwiXHJcbi8+XHJcbjxuZy10ZW1wbGF0ZSAjdHJlZVRlbXBsYXRlIGxldC1ub2RlPlxyXG4gIDxkaXZcclxuICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc05vZGVTZWxlY3RlZChub2RlKVwiXHJcbiAgICBbdGl0bGVdPVwibm9kZS50aXRsZVwiXHJcbiAgICAoY2xpY2spPVwib25TZWxlY3RlZE5vZGVDaGFuZ2Uobm9kZSlcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub2RlVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBub2RlIH1cIiAvPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbm9kZVRlbXBsYXRlIGxldC1ub2RlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1pbmxpbmUtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYWJwLWVsbGlwc2lzLWlubGluZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGN1c3RvbU5vZGVUZW1wbGF0ZSA/IGN1c3RvbU5vZGVUZW1wbGF0ZT8udGVtcGxhdGUgOiBkZWZhdWx0Tm9kZVRlbXBsYXRlO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9kZSB9XHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChtZW51KSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI2Ryb3Bkb3duPVwibmdiRHJvcGRvd25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJkLWlubGluZS1ibG9jayBtcy0xXCJcclxuICAgICAgICAgIG5nYkRyb3Bkb3duXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAoYWJwSW5pdCk9XCJpbml0RHJvcGRvd24obm9kZS5rZXksIGRyb3Bkb3duKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtY2FyZXQtZG93biB0ZXh0LW11dGVkXCJcclxuICAgICAgICAgICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgICAgICAgICAgW2NsYXNzLmRyb3Bkb3duLXRvZ2dsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBub2RlIH1cIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Tm9kZVRlbXBsYXRlIGxldC1ub2RlPlxyXG4gICAgICA8c3Bhbj57eyBub2RlLnRpdGxlIH19PC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEljb25UZW1wbGF0ZSBsZXQtbm9kZSBsZXQtb3JpZ2luPVwib3JpZ2luXCI+XHJcbiAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZS5pc0V4cGFuZGVkID8gbWludXNJY29uIDogcGx1c0ljb25cIlxyXG4gIC8+PC9pPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtaW51c0ljb24+XHJcbiAgPHN2Z1xyXG4gICAgd2lkdGg9XCIxNVwiXHJcbiAgICBoZWlnaHQ9XCIxNVwiXHJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICA+XHJcbiAgICA8cGF0aFxyXG4gICAgICBkPVwiTTExLjUgMGM2LjM0NyAwIDExLjUgNS4xNTMgMTEuNSAxMS41cy01LjE1MyAxMS41LTExLjUgMTEuNS0xMS41LTUuMTUzLTExLjUtMTEuNSA1LjE1My0xMS41IDExLjUtMTEuNXptMCAxYzUuNzk1IDAgMTAuNSA0LjcwNSAxMC41IDEwLjVzLTQuNzA1IDEwLjUtMTAuNSAxMC41LTEwLjUtNC43MDUtMTAuNS0xMC41IDQuNzA1LTEwLjUgMTAuNS0xMC41em0tNi41IDEwaDEzdjFoLTEzdi0xelwiXHJcbiAgICAvPlxyXG4gIDwvc3ZnPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwbHVzSWNvbj5cclxuICA8c3ZnXHJcbiAgICB3aWR0aD1cIjE1XCJcclxuICAgIGhlaWdodD1cIjE1XCJcclxuICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcclxuICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gID5cclxuICAgIDxwYXRoXHJcbiAgICAgIGQ9XCJNMTEuNSAwYzYuMzQ3IDAgMTEuNSA1LjE1MyAxMS41IDExLjVzLTUuMTUzIDExLjUtMTEuNSAxMS41LTExLjUtNS4xNTMtMTEuNS0xMS41IDUuMTUzLTExLjUgMTEuNS0xMS41em0wIDFjNS43OTUgMCAxMC41IDQuNzA1IDEwLjUgMTAuNXMtNC43MDUgMTAuNS0xMC41IDEwLjUtMTAuNS00LjcwNS0xMC41LTEwLjUgNC43MDUtMTAuNSAxMC41LTEwLjV6bS41IDEwaDZ2MWgtNnY2aC0xdi02aC02di0xaDZ2LTZoMXY2elwiXHJcbiAgICAvPlxyXG4gIDwvc3ZnPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=","import { NgModule } from '@angular/core';\nimport { TreeComponent } from './components/tree.component';\nimport { ExpandedIconTemplateDirective } from './templates/expanded-icon-template.directive';\nimport { TreeNodeTemplateDirective } from './templates/tree-node-template.directive';\nimport * as i0 from \"@angular/core\";\nexport class TreeModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeModule, imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective], exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeModule, imports: [TreeComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TreeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\n exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\n declarations: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RyZWUvc3JjL2xpYi90cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFPckYsTUFBTSxPQUFPLFVBQVU7OEdBQVYsVUFBVTsrR0FBVixVQUFVLFlBSlgsYUFBYSxFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixhQUN2RSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsNkJBQTZCOytHQUd0RSxVQUFVLFlBSlgsYUFBYTs7MkZBSVosVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLEVBQUUsNkJBQTZCLENBQUM7b0JBQ2xGLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSw2QkFBNkIsQ0FBQztvQkFDbEYsWUFBWSxFQUFFLEVBQUU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV4cGFuZGVkSWNvblRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZXMvZXhwYW5kZWQtaWNvbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZVRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZXMvdHJlZS1ub2RlLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtUcmVlQ29tcG9uZW50LCBUcmVlTm9kZVRlbXBsYXRlRGlyZWN0aXZlLCBFeHBhbmRlZEljb25UZW1wbGF0ZURpcmVjdGl2ZV0sXHJcbiAgZXhwb3J0czogW1RyZWVDb21wb25lbnQsIFRyZWVOb2RlVGVtcGxhdGVEaXJlY3RpdmUsIEV4cGFuZGVkSWNvblRlbXBsYXRlRGlyZWN0aXZlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZU1vZHVsZSB7fVxyXG4iXX0=","export class BaseNode {\n constructor(id, parentId) {\n this.id = id;\n this.parentId = parentId;\n }\n}\nexport class TreeNode extends BaseNode {\n constructor(entity, nameResolver = ent => ent.displayName || ent.name) {\n super(entity.id, entity.parentId);\n this.entity = entity;\n this.nameResolver = nameResolver;\n this.icon = null;\n this.children = [];\n this.isLeaf = true;\n this.checked = false;\n this.selected = false;\n this.expanded = false;\n this.selectable = true;\n this.disabled = false;\n this.disableCheckbox = false;\n this.key = entity.id;\n this.title = nameResolver(entity);\n }\n}\nexport class TreeAdapter {\n constructor(list = []) {\n this.list = list;\n this.tree = createTreeFromList(this.list);\n }\n getList() {\n return this.list;\n }\n getTree() {\n return this.tree;\n }\n handleDrop({ key, parentNode }) {\n const index = this.list.findIndex(({ id }) => id === key);\n this.list[index].parentId = parentNode ? parentNode.key : null;\n this.tree = createTreeFromList(this.list);\n }\n handleRemove({ key }) {\n this.updateTreeFromList(this.list.filter(item => item.id !== key));\n }\n handleUpdate({ key, children }) {\n /**\n * When we need to update a node with new children, first we need to remove any descendant nodes.\n * If we remove immediate children and create a new tree, any other descendant nodes will be removed\n * and we won't need to recursively remove sub children.\n * Then, you simply add back the new children and create a new tree.\n */\n const listWithDescendantNodesRemoved = this.updateTreeFromList(this.list.filter(item => item.parentId !== key));\n this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));\n }\n updateTreeFromList(list) {\n this.tree = createTreeFromList(list);\n this.list = createListFromTree(this.tree);\n return this.list;\n }\n}\n// UTILITY FUNCTIONS\nfunction createTreeFromList(list) {\n const map = createMapFromList(list);\n const tree = [];\n list.forEach(row => {\n const parentId = row.parentId;\n const node = map.get(row.id);\n if (parentId) {\n const parent = map.get(parentId);\n if (!parent)\n return;\n parent.children.push(node);\n parent.isLeaf = false;\n }\n else {\n tree.push(node);\n }\n });\n return tree;\n}\nfunction createListFromTree(tree, list = []) {\n tree.forEach(node => {\n list.push({ ...node.entity, parentId: node.parentId });\n if (node.children)\n createListFromTree(node.children, list);\n });\n return list;\n}\nfunction createMapFromList(list, map = new Map()) {\n list.forEach(row => map.set(row.id, new TreeNode(row)));\n return map;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotdHJlZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlL3NyYy9saWIvdXRpbHMvbnotdHJlZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsUUFBUTtJQUk1QixZQUFtQixFQUFVLEVBQVMsUUFBdUI7UUFBMUMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWU7SUFBRyxDQUFDO0NBQ2xFO0FBRUQsTUFBTSxPQUFPLFFBQTZCLFNBQVEsUUFBUTtJQWN4RCxZQUFtQixNQUFTLEVBQVUsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLElBQUk7UUFDckYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRGpCLFdBQU0sR0FBTixNQUFNLENBQUc7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUM7UUFYdkYsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUt0QixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFBb0IsT0FBWSxFQUFFO1FBQWQsU0FBSSxHQUFKLElBQUksQ0FBVTtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBZTtRQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQUUsR0FBRyxFQUFlO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBa0M7UUFDNUQ7Ozs7O1dBS0c7UUFDSCxNQUFNLDhCQUE4QixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVELG9CQUFvQjtBQUVwQixTQUFTLGtCQUFrQixDQUFxQixJQUFTO0lBQ3ZELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxHQUFrQixFQUFFLENBQUM7SUFFL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQXFCLElBQW1CLEVBQUUsT0FBWSxFQUFFO0lBQ2pGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixJQUFTLEVBQ1QsTUFBTSxJQUFJLEdBQUcsRUFBdUI7SUFFcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOb2RlIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIHBhcmVudElkOiBzdHJpbmcgfCBudWxsKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJlZU5vZGU8VCBleHRlbmRzIEJhc2VOb2RlPiBleHRlbmRzIEJhc2VOb2RlIHtcclxuICB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGNoaWxkcmVuOiBUcmVlTm9kZTxUPltdID0gW107XHJcbiAgaXNMZWFmID0gdHJ1ZTtcclxuICBjaGVja2VkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWQgPSBmYWxzZTtcclxuICBleHBhbmRlZCA9IGZhbHNlO1xyXG4gIHNlbGVjdGFibGUgPSB0cnVlO1xyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgZGlzYWJsZUNoZWNrYm94ID0gZmFsc2U7XHJcbiAgcGFyZW50Tm9kZT86IFRyZWVOb2RlPFQ+IHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVudGl0eTogVCwgcHJpdmF0ZSBuYW1lUmVzb2x2ZXIgPSBlbnQgPT4gZW50LmRpc3BsYXlOYW1lIHx8IGVudC5uYW1lKSB7XHJcbiAgICBzdXBlcihlbnRpdHkuaWQsIGVudGl0eS5wYXJlbnRJZCk7XHJcbiAgICB0aGlzLmtleSA9IGVudGl0eS5pZDtcclxuICAgIHRoaXMudGl0bGUgPSBuYW1lUmVzb2x2ZXIoZW50aXR5KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUcmVlQWRhcHRlcjxUIGV4dGVuZHMgQmFzZU5vZGUgPSBCYXNlTm9kZT4ge1xyXG4gIHByaXZhdGUgdHJlZTogVHJlZU5vZGU8VD5bXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsaXN0OiBUW10gPSBbXSkge1xyXG4gICAgdGhpcy50cmVlID0gY3JlYXRlVHJlZUZyb21MaXN0KHRoaXMubGlzdCk7XHJcbiAgfVxyXG5cclxuICBnZXRMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGlzdDtcclxuICB9XHJcblxyXG4gIGdldFRyZWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cmVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRHJvcCh7IGtleSwgcGFyZW50Tm9kZSB9OiBUcmVlTm9kZTxUPikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3QuZmluZEluZGV4KCh7IGlkIH0pID0+IGlkID09PSBrZXkpO1xyXG4gICAgdGhpcy5saXN0W2luZGV4XS5wYXJlbnRJZCA9IHBhcmVudE5vZGUgPyBwYXJlbnROb2RlLmtleSA6IG51bGw7XHJcbiAgICB0aGlzLnRyZWUgPSBjcmVhdGVUcmVlRnJvbUxpc3QodGhpcy5saXN0KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVJlbW92ZSh7IGtleSB9OiBUcmVlTm9kZTxUPikge1xyXG4gICAgdGhpcy51cGRhdGVUcmVlRnJvbUxpc3QodGhpcy5saXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IGtleSkpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlVXBkYXRlKHsga2V5LCBjaGlsZHJlbiB9OiB7IGtleTogc3RyaW5nOyBjaGlsZHJlbjogVFtdIH0pIHtcclxuICAgIC8qKlxyXG4gICAgICogV2hlbiB3ZSBuZWVkIHRvIHVwZGF0ZSBhIG5vZGUgd2l0aCBuZXcgY2hpbGRyZW4sIGZpcnN0IHdlIG5lZWQgdG8gcmVtb3ZlIGFueSBkZXNjZW5kYW50IG5vZGVzLlxyXG4gICAgICogSWYgd2UgcmVtb3ZlIGltbWVkaWF0ZSBjaGlsZHJlbiBhbmQgY3JlYXRlIGEgbmV3IHRyZWUsIGFueSBvdGhlciBkZXNjZW5kYW50IG5vZGVzIHdpbGwgYmUgcmVtb3ZlZFxyXG4gICAgICogYW5kIHdlIHdvbid0IG5lZWQgdG8gcmVjdXJzaXZlbHkgcmVtb3ZlIHN1YiBjaGlsZHJlbi5cclxuICAgICAqIFRoZW4sIHlvdSBzaW1wbHkgYWRkIGJhY2sgdGhlIG5ldyBjaGlsZHJlbiBhbmQgY3JlYXRlIGEgbmV3IHRyZWUuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGxpc3RXaXRoRGVzY2VuZGFudE5vZGVzUmVtb3ZlZCA9IHRoaXMudXBkYXRlVHJlZUZyb21MaXN0KFxyXG4gICAgICB0aGlzLmxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5wYXJlbnRJZCAhPT0ga2V5KSxcclxuICAgICk7XHJcbiAgICB0aGlzLnVwZGF0ZVRyZWVGcm9tTGlzdChsaXN0V2l0aERlc2NlbmRhbnROb2Rlc1JlbW92ZWQuY29uY2F0KGNoaWxkcmVuKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUcmVlRnJvbUxpc3QobGlzdDogVFtdKSB7XHJcbiAgICB0aGlzLnRyZWUgPSBjcmVhdGVUcmVlRnJvbUxpc3QobGlzdCk7XHJcbiAgICB0aGlzLmxpc3QgPSBjcmVhdGVMaXN0RnJvbVRyZWUodGhpcy50cmVlKTtcclxuICAgIHJldHVybiB0aGlzLmxpc3Q7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBVVElMSVRZIEZVTkNUSU9OU1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlVHJlZUZyb21MaXN0PFQgZXh0ZW5kcyBCYXNlTm9kZT4obGlzdDogVFtdKTogVHJlZU5vZGU8VD5bXSB7XHJcbiAgY29uc3QgbWFwID0gY3JlYXRlTWFwRnJvbUxpc3QobGlzdCk7XHJcbiAgY29uc3QgdHJlZTogVHJlZU5vZGU8VD5bXSA9IFtdO1xyXG5cclxuICBsaXN0LmZvckVhY2gocm93ID0+IHtcclxuICAgIGNvbnN0IHBhcmVudElkID0gcm93LnBhcmVudElkO1xyXG4gICAgY29uc3Qgbm9kZSA9IG1hcC5nZXQocm93LmlkKTtcclxuICAgIGlmIChwYXJlbnRJZCkge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBtYXAuZ2V0KHBhcmVudElkKTtcclxuICAgICAgaWYgKCFwYXJlbnQpIHJldHVybjtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgIHBhcmVudC5pc0xlYWYgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyZWUucHVzaChub2RlKTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gdHJlZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTGlzdEZyb21UcmVlPFQgZXh0ZW5kcyBCYXNlTm9kZT4odHJlZTogVHJlZU5vZGU8VD5bXSwgbGlzdDogVFtdID0gW10pOiBUW10ge1xyXG4gIHRyZWUuZm9yRWFjaChub2RlID0+IHtcclxuICAgIGxpc3QucHVzaCh7IC4uLm5vZGUuZW50aXR5LCBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCB9KTtcclxuICAgIGlmIChub2RlLmNoaWxkcmVuKSBjcmVhdGVMaXN0RnJvbVRyZWUobm9kZS5jaGlsZHJlbiwgbGlzdCk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBsaXN0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVNYXBGcm9tTGlzdDxUIGV4dGVuZHMgQmFzZU5vZGU+KFxyXG4gIGxpc3Q6IFRbXSxcclxuICBtYXAgPSBuZXcgTWFwPHN0cmluZywgVHJlZU5vZGU8VD4+KCksXHJcbik6IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+PiB7XHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiBtYXAuc2V0KHJvdy5pZCwgbmV3IFRyZWVOb2RlKHJvdykpKTtcclxuXHJcbiAgcmV0dXJuIG1hcDtcclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvbXBvbmVudHMtdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS9zcmMvYWJwLW5nLmNvbXBvbmVudHMtdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-tree.mjs","sources":["../../../../packages/components/tree/src/lib/disable-tree-style-loading.token.ts","../../../../packages/components/tree/src/lib/templates/tree-node-template.directive.ts","../../../../packages/components/tree/src/lib/templates/expanded-icon-template.directive.ts","../../../../packages/components/tree/src/lib/components/tree.component.ts","../../../../packages/components/tree/src/lib/components/tree.component.html","../../../../packages/components/tree/src/lib/tree.module.ts","../../../../packages/components/tree/src/lib/utils/nz-tree-adapter.ts","../../../../packages/components/tree/src/abp-ng.components-tree.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken<boolean>(\r\n 'DISABLE_TREE_STYLE_LOADING_TOKEN',\r\n);\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',\r\n})\r\nexport class TreeNodeTemplateDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',\r\n})\r\nexport class ExpandedIconTemplateDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { NgbDropdown, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n NzFormatBeforeDropEvent,\r\n NzFormatEmitEvent,\r\n NzTreeComponent,\r\n NzTreeNode,\r\n} from 'ng-zorro-antd/tree';\r\nimport {\r\n InitDirective,\r\n LazyLoadService,\r\n LOADING_STRATEGY,\r\n SubscriptionService,\r\n} from '@abp/ng.core';\r\nimport { of } from 'rxjs';\r\nimport { DISABLE_TREE_STYLE_LOADING_TOKEN } from '../disable-tree-style-loading.token';\r\nimport { TreeNodeTemplateDirective } from '../templates/tree-node-template.directive';\r\nimport { ExpandedIconTemplateDirective } from '../templates/expanded-icon-template.directive';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/animation';\r\n\r\nexport type DropEvent = NzFormatEmitEvent & { pos: number };\r\n\r\n@Component({\r\n selector: 'abp-tree',\r\n templateUrl: 'tree.component.html',\r\n styleUrls: ['tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [SubscriptionService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgTemplateOutlet,\r\n NzTreeComponent,\r\n NgbDropdown,\r\n NgbDropdownMenu,\r\n NgbDropdownToggle,\r\n InitDirective,\r\n NzNoAnimationDirective,\r\n ],\r\n})\r\nexport class TreeComponent implements OnInit {\r\n private lazyLoadService = inject(LazyLoadService);\r\n private subscriptionService = inject(SubscriptionService);\r\n private cdr = inject(ChangeDetectorRef);\r\n private disableTreeStyleLoading = inject(DISABLE_TREE_STYLE_LOADING_TOKEN, { optional: true });\r\n\r\n dropPosition: number;\r\n\r\n dropdowns = {} as { [key: string]: NgbDropdown };\r\n\r\n @ContentChild('menu') menu: TemplateRef<any>;\r\n @ContentChild(TreeNodeTemplateDirective) customNodeTemplate: TreeNodeTemplateDirective;\r\n @ContentChild(ExpandedIconTemplateDirective) expandedIconTemplate: ExpandedIconTemplateDirective;\r\n @Output() readonly checkedKeysChange = new EventEmitter();\r\n @Output() readonly expandedKeysChange = new EventEmitter<string[]>();\r\n @Output() readonly selectedNodeChange = new EventEmitter();\r\n @Output() readonly dropOver = new EventEmitter<DropEvent>();\r\n @Output() readonly nzExpandChange = new EventEmitter<NzFormatEmitEvent>();\r\n @Input() noAnimation = true;\r\n @Input() draggable: boolean;\r\n @Input() checkable: boolean;\r\n @Input() checkStrictly: boolean;\r\n @Input() checkedKeys = [];\r\n @Input() nodes = [];\r\n @Input() expandedKeys: string[] = [];\r\n @Input() selectedNode: any;\r\n @Input() changeCheckboxWithNode: boolean;\r\n @Input() isNodeSelected = node => this.selectedNode?.id === node.key;\r\n @Input() beforeDrop = (event: NzFormatBeforeDropEvent) => {\r\n this.dropPosition = event.pos;\r\n return of(false);\r\n };\r\n\r\n ngOnInit() {\r\n this.loadStyle();\r\n }\r\n\r\n private loadStyle() {\r\n if (this.disableTreeStyleLoading) {\r\n return;\r\n }\r\n const loaded$ = this.lazyLoadService.load(\r\n LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'),\r\n );\r\n this.subscriptionService.addOne(loaded$);\r\n }\r\n\r\n private findNode(target: any, nodes: any[]) {\r\n for (const node of nodes) {\r\n if (node.key === target.id) {\r\n return node;\r\n }\r\n if (node.children) {\r\n const res = this.findNode(target, node.children);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onSelectedNodeChange(node: NzTreeNode) {\r\n this.selectedNode = node.origin.entity;\r\n if (this.changeCheckboxWithNode) {\r\n let newVal;\r\n if (node.isChecked) {\r\n newVal = this.checkedKeys.filter(x => x !== node.key);\r\n } else {\r\n newVal = [...this.checkedKeys, node.key];\r\n }\r\n this.selectedNodeChange.emit(node);\r\n this.checkedKeys = newVal;\r\n this.checkedKeysChange.emit(newVal);\r\n } else {\r\n this.selectedNodeChange.emit(node.origin.entity);\r\n }\r\n }\r\n\r\n onCheckboxChange(event) {\r\n this.checkedKeys = [...event.keys];\r\n this.checkedKeysChange.emit(event.keys);\r\n }\r\n\r\n onExpandedKeysChange(event) {\r\n this.expandedKeys = [...event.keys];\r\n this.expandedKeysChange.emit(event.keys);\r\n this.nzExpandChange.emit(event);\r\n }\r\n\r\n onDrop(event: DropEvent) {\r\n event.event.stopPropagation();\r\n event.event.preventDefault();\r\n event.pos = this.dropPosition;\r\n\r\n this.dropOver.emit(event);\r\n }\r\n\r\n initDropdown(key: string, dropdown: NgbDropdown) {\r\n this.dropdowns[key] = dropdown;\r\n }\r\n\r\n onContextMenuChange(event: NzFormatEmitEvent) {\r\n const dropdownKey = event.node?.key;\r\n\r\n Object.entries(this.dropdowns).forEach(([key, dropdown]) => {\r\n if (key !== dropdownKey && dropdown?.isOpen()) {\r\n dropdown.close();\r\n }\r\n });\r\n this.dropdowns[dropdownKey]?.toggle();\r\n }\r\n\r\n setSelectedNode(node: any) {\r\n const newSelectedNode = this.findNode(node, this.nodes);\r\n this.selectedNode = { ...newSelectedNode };\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable\"\r\n [nzCheckStrictly]=\"checkStrictly\"\r\n [nzCheckable]=\"checkable\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu; context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { TreeComponent } from './components/tree.component';\r\nimport { ExpandedIconTemplateDirective } from './templates/expanded-icon-template.directive';\r\nimport { TreeNodeTemplateDirective } from './templates/tree-node-template.directive';\r\n\r\n@NgModule({\r\n imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\r\n exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],\r\n declarations: [],\r\n})\r\nexport class TreeModule {}\r\n","export abstract class BaseNode {\r\n name?: string;\r\n displayName?: string;\r\n\r\n constructor(public id: string, public parentId: string | null) {}\r\n}\r\n\r\nexport class TreeNode<T extends BaseNode> extends BaseNode {\r\n title: string | undefined;\r\n key: string;\r\n icon: string | null = null;\r\n children: TreeNode<T>[] = [];\r\n isLeaf = true;\r\n checked = false;\r\n selected = false;\r\n expanded = false;\r\n selectable = true;\r\n disabled = false;\r\n disableCheckbox = false;\r\n parentNode?: TreeNode<T> | null;\r\n\r\n constructor(public entity: T, private nameResolver = ent => ent.displayName || ent.name) {\r\n super(entity.id, entity.parentId);\r\n this.key = entity.id;\r\n this.title = nameResolver(entity);\r\n }\r\n}\r\n\r\nexport class TreeAdapter<T extends BaseNode = BaseNode> {\r\n private tree: TreeNode<T>[];\r\n\r\n constructor(private list: T[] = []) {\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n getList() {\r\n return this.list;\r\n }\r\n\r\n getTree() {\r\n return this.tree;\r\n }\r\n\r\n handleDrop({ key, parentNode }: TreeNode<T>) {\r\n const index = this.list.findIndex(({ id }) => id === key);\r\n this.list[index].parentId = parentNode ? parentNode.key : null;\r\n this.tree = createTreeFromList(this.list);\r\n }\r\n\r\n handleRemove({ key }: TreeNode<T>) {\r\n this.updateTreeFromList(this.list.filter(item => item.id !== key));\r\n }\r\n\r\n handleUpdate({ key, children }: { key: string; children: T[] }) {\r\n /**\r\n * When we need to update a node with new children, first we need to remove any descendant nodes.\r\n * If we remove immediate children and create a new tree, any other descendant nodes will be removed\r\n * and we won't need to recursively remove sub children.\r\n * Then, you simply add back the new children and create a new tree.\r\n */\r\n const listWithDescendantNodesRemoved = this.updateTreeFromList(\r\n this.list.filter(item => item.parentId !== key),\r\n );\r\n this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));\r\n }\r\n\r\n updateTreeFromList(list: T[]) {\r\n this.tree = createTreeFromList(list);\r\n this.list = createListFromTree(this.tree);\r\n return this.list;\r\n }\r\n}\r\n\r\n// UTILITY FUNCTIONS\r\n\r\nfunction createTreeFromList<T extends BaseNode>(list: T[]): TreeNode<T>[] {\r\n const map = createMapFromList(list);\r\n const tree: TreeNode<T>[] = [];\r\n\r\n list.forEach(row => {\r\n const parentId = row.parentId;\r\n const node = map.get(row.id);\r\n if (parentId) {\r\n const parent = map.get(parentId);\r\n if (!parent) return;\r\n parent.children.push(node);\r\n parent.isLeaf = false;\r\n } else {\r\n tree.push(node);\r\n }\r\n });\r\n return tree;\r\n}\r\n\r\nfunction createListFromTree<T extends BaseNode>(tree: TreeNode<T>[], list: T[] = []): T[] {\r\n tree.forEach(node => {\r\n list.push({ ...node.entity, parentId: node.parentId });\r\n if (node.children) createListFromTree(node.children, list);\r\n });\r\n\r\n return list;\r\n}\r\n\r\nfunction createMapFromList<T extends BaseNode>(\r\n list: T[],\r\n map = new Map<string, TreeNode<T>>(),\r\n): Map<string, TreeNode<T>> {\r\n list.forEach(row => map.set(row.id, new TreeNode(row)));\r\n\r\n return map;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components.mjs","sources":["../tmp-esm2022/public-api.js","../tmp-esm2022/abp-ng.components.js"],"sourcesContent":["/*\n * Public API Surface of components\n */\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29tcG9uZW50c1xyXG4gKi9cclxuXHJcbmV4cG9ydCB7fTtcclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NyYy9hYnAtbmcuY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":[],"mappings":"AAAA;AACA;AACA;;ACFA;AACA;AACA"}
1
+ {"version":3,"file":"abp-ng.components.mjs","sources":["../../../../packages/components/src/public-api.ts","../../../../packages/components/src/abp-ng.components.ts"],"sourcesContent":["/*\r\n * Public API Surface of components\r\n */\r\n\r\nexport {};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;;ACFH;;AAEG"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@abp/ng.components",
3
- "version": "10.0.3",
3
+ "version": "10.1.0-rc.2",
4
4
  "homepage": "https://abp.io",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/abpframework/abp.git"
8
8
  },
9
9
  "peerDependencies": {
10
- "@abp/ng.core": ">=10.0.3",
11
- "@abp/ng.theme.shared": ">=10.0.3"
10
+ "@abp/ng.core": ">=10.1.0-rc.2",
11
+ "@abp/ng.theme.shared": ">=10.1.0-rc.2"
12
12
  },
13
13
  "dependencies": {
14
14
  "chart.js": "^3.5.1",
15
- "ng-zorro-antd": "~20.0.0",
15
+ "ng-zorro-antd": "~21.0.0-next.1",
16
16
  "@ctrl/tinycolor": "^4.0.0",
17
17
  "tslib": "^2.0.0"
18
18
  },
@@ -34,29 +34,37 @@
34
34
  "webapp"
35
35
  ],
36
36
  "module": "fesm2022/abp-ng.components.mjs",
37
- "typings": "index.d.ts",
37
+ "typings": "types/abp-ng.components.d.ts",
38
38
  "exports": {
39
39
  "./package.json": {
40
40
  "default": "./package.json"
41
41
  },
42
42
  ".": {
43
- "types": "./index.d.ts",
43
+ "types": "./types/abp-ng.components.d.ts",
44
44
  "default": "./fesm2022/abp-ng.components.mjs"
45
45
  },
46
+ "./chart.js": {
47
+ "types": "./types/abp-ng.components-chart.js.d.ts",
48
+ "default": "./fesm2022/abp-ng.components-chart.js.mjs"
49
+ },
50
+ "./dynamic-form": {
51
+ "types": "./types/abp-ng.components-dynamic-form.d.ts",
52
+ "default": "./fesm2022/abp-ng.components-dynamic-form.mjs"
53
+ },
46
54
  "./extensible": {
47
- "types": "./extensible/index.d.ts",
55
+ "types": "./types/abp-ng.components-extensible.d.ts",
48
56
  "default": "./fesm2022/abp-ng.components-extensible.mjs"
49
57
  },
50
- "./chart.js": {
51
- "types": "./chart.js/index.d.ts",
52
- "default": "./fesm2022/abp-ng.components-chart.js.mjs"
58
+ "./lookup": {
59
+ "types": "./types/abp-ng.components-lookup.d.ts",
60
+ "default": "./fesm2022/abp-ng.components-lookup.mjs"
53
61
  },
54
62
  "./page": {
55
- "types": "./page/index.d.ts",
63
+ "types": "./types/abp-ng.components-page.d.ts",
56
64
  "default": "./fesm2022/abp-ng.components-page.mjs"
57
65
  },
58
66
  "./tree": {
59
- "types": "./tree/index.d.ts",
67
+ "types": "./types/abp-ng.components-tree.d.ts",
60
68
  "default": "./fesm2022/abp-ng.components-tree.mjs"
61
69
  }
62
70
  },
@@ -0,0 +1,200 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Type, OnInit, DestroyRef, ChangeDetectorRef, InjectionToken, ViewContainerRef } from '@angular/core';
3
+ import * as _angular_forms from '@angular/forms';
4
+ import { ControlValueAccessor, FormGroup, FormControl, FormArray } from '@angular/forms';
5
+ import { Observable } from 'rxjs';
6
+
7
+ interface FormFieldConfig<T = any> {
8
+ key: string;
9
+ value?: any;
10
+ type: 'text' | 'email' | 'number' | 'select' | 'checkbox' | 'date' | 'textarea' | 'datetime-local' | 'time' | 'password' | 'tel' | 'url' | 'radio' | 'file' | 'range' | 'color' | 'group' | 'array';
11
+ label: string;
12
+ placeholder?: string;
13
+ required?: boolean;
14
+ disabled?: boolean;
15
+ options?: OptionProps<T>;
16
+ validators?: ValidatorConfig[];
17
+ conditionalLogic?: ConditionalRule[];
18
+ order?: number;
19
+ gridSize?: number;
20
+ component?: Type<ControlValueAccessor>;
21
+ min?: number | string;
22
+ max?: number | string;
23
+ step?: number | string;
24
+ minLength?: number;
25
+ maxLength?: number;
26
+ pattern?: string;
27
+ accept?: string;
28
+ multiple?: boolean;
29
+ children?: FormFieldConfig[];
30
+ minItems?: number;
31
+ maxItems?: number;
32
+ }
33
+ interface ValidatorConfig {
34
+ type: 'required' | 'email' | 'minLength' | 'maxLength' | 'pattern' | 'custom' | 'min' | 'max' | 'requiredTrue';
35
+ value?: any;
36
+ message: string;
37
+ }
38
+ interface ConditionalRule {
39
+ dependsOn: string;
40
+ condition: 'equals' | 'notEquals' | 'contains' | 'greaterThan' | 'lessThan';
41
+ value: any;
42
+ action: 'show' | 'hide' | 'enable' | 'disable';
43
+ }
44
+ declare enum ConditionalAction {
45
+ SHOW = "show",
46
+ HIDE = "hide",
47
+ ENABLE = "enable",
48
+ DISABLE = "disable"
49
+ }
50
+ interface OptionProps<T = any> {
51
+ defaultValues?: T[];
52
+ url?: string;
53
+ disabled?: (option: T) => boolean;
54
+ labelProp?: string;
55
+ valueProp?: string;
56
+ apiName?: string;
57
+ }
58
+
59
+ declare class DynamicFormComponent implements OnInit {
60
+ fields: _angular_core.InputSignal<FormFieldConfig<any>[]>;
61
+ values: _angular_core.InputSignal<Record<string, any>>;
62
+ submitButtonText: _angular_core.InputSignal<string>;
63
+ submitInProgress: _angular_core.InputSignal<boolean>;
64
+ showCancelButton: _angular_core.InputSignal<boolean>;
65
+ onSubmit: _angular_core.OutputEmitterRef<any>;
66
+ formCancel: _angular_core.OutputEmitterRef<void>;
67
+ private dynamicFormService;
68
+ readonly destroyRef: DestroyRef;
69
+ readonly changeDetectorRef: ChangeDetectorRef;
70
+ dynamicForm: FormGroup;
71
+ fieldVisibility: {
72
+ [key: string]: boolean;
73
+ };
74
+ ngOnInit(): void;
75
+ get sortedFields(): FormFieldConfig[];
76
+ submit(): void;
77
+ onCancel(): void;
78
+ onFieldChange(event: {
79
+ fieldKey: string;
80
+ value: any;
81
+ }): void;
82
+ isFieldVisible(field: FormFieldConfig): boolean;
83
+ getChildFormGroup(key: string): FormGroup;
84
+ resetForm(): void;
85
+ private initializeFieldVisibility;
86
+ private setupConditionalLogic;
87
+ private evaluateConditionalLogic;
88
+ private evaluateCondition;
89
+ private applyConditionalAction;
90
+ private setupFormAndLogic;
91
+ private markAllFieldsAsTouched;
92
+ private focusFirstInvalidField;
93
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
94
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormComponent, "abp-dynamic-form", ["abpDynamicForm"], { "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "submitButtonText": { "alias": "submitButtonText"; "required": false; "isSignal": true; }; "submitInProgress": { "alias": "submitInProgress"; "required": false; "isSignal": true; }; "showCancelButton": { "alias": "showCancelButton"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; "formCancel": "formCancel"; }, never, ["[actions]"], true, never>;
95
+ }
96
+
97
+ declare const ABP_DYNAMIC_FORM_FIELD: InjectionToken<DynamicFormFieldComponent>;
98
+ declare class DynamicFormFieldComponent implements OnInit, ControlValueAccessor {
99
+ field: _angular_core.InputSignal<FormFieldConfig<any>>;
100
+ visible: _angular_core.InputSignal<boolean>;
101
+ control: FormControl;
102
+ fieldFormGroup: FormGroup;
103
+ readonly changeDetectorRef: ChangeDetectorRef;
104
+ readonly destroyRef: DestroyRef;
105
+ private injector;
106
+ private formBuilder;
107
+ private dynamicFormService;
108
+ options$: Observable<{
109
+ key: string;
110
+ value: any;
111
+ }[]>;
112
+ get fieldId(): string;
113
+ get errorId(): string;
114
+ get helpTextId(): string;
115
+ constructor();
116
+ ngOnInit(): void;
117
+ writeValue(value: any[]): void;
118
+ registerOnChange(fn: any): void;
119
+ registerOnTouched(fn: any): void;
120
+ setDisabledState(isDisabled: boolean): void;
121
+ get isInvalid(): boolean;
122
+ get errors(): string[];
123
+ get value(): _angular_forms.AbstractControl<any, any, any>;
124
+ onFileChange(event: Event): void;
125
+ private onChange;
126
+ private onTouched;
127
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormFieldComponent, never>;
128
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormFieldComponent, "abp-dynamic-form-field", ["abpDynamicFormField"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
129
+ }
130
+
131
+ declare class DynamicFieldHostComponent implements ControlValueAccessor {
132
+ component: _angular_core.InputSignal<Type<ControlValueAccessor>>;
133
+ inputs: _angular_core.InputSignal<Record<string, any>>;
134
+ viewContainerRef: ViewContainerRef;
135
+ private componentRef?;
136
+ private value;
137
+ private disabled;
138
+ private innerControl;
139
+ readonly destroyRef: DestroyRef;
140
+ constructor();
141
+ private createChild;
142
+ private applyInputs;
143
+ private isCVA;
144
+ writeValue(obj: any): void;
145
+ private onChange;
146
+ private onTouched;
147
+ registerOnChange(fn: any): void;
148
+ registerOnTouched(fn: any): void;
149
+ setDisabledState(isDisabled: boolean): void;
150
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFieldHostComponent, never>;
151
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFieldHostComponent, "abp-dynamic-form-field-host", never, { "component": { "alias": "component"; "required": false; "isSignal": true; }; "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
152
+ }
153
+
154
+ declare class DynamicFormService {
155
+ private formBuilder;
156
+ private restService;
157
+ apiName: string;
158
+ createFormGroup(fields: FormFieldConfig[]): FormGroup;
159
+ createFormArray(arrayConfig: FormFieldConfig): FormArray;
160
+ getInitialValues(fields: FormFieldConfig[]): any;
161
+ getOptions(url: string, apiName?: string): any;
162
+ private buildValidators;
163
+ private getInitialValue;
164
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormService, never>;
165
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DynamicFormService>;
166
+ }
167
+
168
+ declare class DynamicFormGroupComponent {
169
+ groupConfig: _angular_core.InputSignal<FormFieldConfig<any>>;
170
+ formGroup: _angular_core.InputSignal<FormGroup<any>>;
171
+ visible: _angular_core.InputSignal<boolean>;
172
+ get sortedChildren(): FormFieldConfig[];
173
+ getChildFormGroup(key: string): FormGroup;
174
+ getChildControl(key: string): _angular_forms.AbstractControl<any, any, any>;
175
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormGroupComponent, never>;
176
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormGroupComponent, "abp-dynamic-form-group", never, { "groupConfig": { "alias": "groupConfig"; "required": true; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": true; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
177
+ }
178
+
179
+ declare class DynamicFormArrayComponent {
180
+ arrayConfig: _angular_core.InputSignal<FormFieldConfig<any>>;
181
+ formGroup: _angular_core.InputSignal<FormGroup<any>>;
182
+ visible: _angular_core.InputSignal<boolean>;
183
+ private fb;
184
+ private dynamicFormService;
185
+ private cdr;
186
+ get formArray(): FormArray;
187
+ get sortedChildren(): FormFieldConfig[];
188
+ get canAddItem(): boolean;
189
+ get canRemoveItem(): boolean;
190
+ addItem(): void;
191
+ removeItem(index: number): void;
192
+ getItemFormGroup(index: number): FormGroup;
193
+ getNestedFormGroup(index: number, key: string): FormGroup;
194
+ trackByIndex(index: number): number;
195
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormArrayComponent, never>;
196
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormArrayComponent, "abp-dynamic-form-array", never, { "arrayConfig": { "alias": "arrayConfig"; "required": true; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": true; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
197
+ }
198
+
199
+ export { ABP_DYNAMIC_FORM_FIELD, ConditionalAction, DynamicFieldHostComponent, DynamicFormArrayComponent, DynamicFormComponent, DynamicFormFieldComponent, DynamicFormGroupComponent, DynamicFormService };
200
+ export type { ConditionalRule, FormFieldConfig, OptionProps, ValidatorConfig };
@@ -157,8 +157,8 @@ declare class ExtensibleFormPropService {
157
157
  #private;
158
158
  meridian$: rxjs.Observable<boolean>;
159
159
  isRequired(validator: ValidatorFn): boolean;
160
- getComponent(prop: FormProp): "hidden" | "select" | "date" | "time" | "checkbox" | "template" | "multiselect" | "passwordinputgroup" | "typeahead" | "dateTime" | "textarea" | "input";
161
- getType(prop: FormProp): "email" | "hidden" | "number" | "text" | "checkbox" | "password" | "passwordinputgroup";
160
+ getComponent(prop: FormProp): "date" | "hidden" | "multiselect" | "passwordinputgroup" | "time" | "typeahead" | "template" | "checkbox" | "dateTime" | "textarea" | "select" | "input";
161
+ getType(prop: FormProp): "email" | "hidden" | "number" | "password" | "passwordinputgroup" | "text" | "checkbox";
162
162
  calcAsterisks(validators: ValidatorFn[]): "" | "*";
163
163
  static ɵfac: i0.ɵɵFactoryDeclaration<ExtensibleFormPropService, never>;
164
164
  static ɵprov: i0.ɵɵInjectableDeclaration<ExtensibleFormPropService>;
@@ -0,0 +1,46 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, TemplateRef } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+
5
+ interface LookupItem {
6
+ key: string;
7
+ displayName: string;
8
+ [key: string]: unknown;
9
+ }
10
+ type LookupSearchFn<T = LookupItem> = (filter: string) => Observable<T[]>;
11
+ declare class LookupSearchComponent<T extends LookupItem = LookupItem> implements OnInit {
12
+ private readonly destroyRef;
13
+ readonly label: _angular_core.InputSignal<string>;
14
+ readonly placeholder: _angular_core.InputSignal<string>;
15
+ readonly debounceTime: _angular_core.InputSignal<number>;
16
+ readonly minSearchLength: _angular_core.InputSignal<number>;
17
+ readonly displayKey: _angular_core.InputSignal<keyof T>;
18
+ readonly valueKey: _angular_core.InputSignal<keyof T>;
19
+ readonly disabled: _angular_core.InputSignal<boolean>;
20
+ readonly searchFn: _angular_core.InputSignal<LookupSearchFn<T>>;
21
+ readonly selectedValue: _angular_core.ModelSignal<string>;
22
+ readonly displayValue: _angular_core.ModelSignal<string>;
23
+ readonly itemSelected: _angular_core.OutputEmitterRef<T>;
24
+ readonly searchChanged: _angular_core.OutputEmitterRef<string>;
25
+ readonly itemTemplate: _angular_core.Signal<TemplateRef<{
26
+ $implicit: T;
27
+ }>>;
28
+ readonly noResultsTemplate: _angular_core.Signal<TemplateRef<void>>;
29
+ readonly searchResults: _angular_core.WritableSignal<T[]>;
30
+ readonly showDropdown: _angular_core.WritableSignal<boolean>;
31
+ readonly isLoading: _angular_core.WritableSignal<boolean>;
32
+ private readonly searchSubject;
33
+ ngOnInit(): void;
34
+ onSearchInput(filter: string): void;
35
+ onSearchFocus(): void;
36
+ onSearchBlur(event: FocusEvent): void;
37
+ selectItem(item: T): void;
38
+ clearSelection(): void;
39
+ private performSearch;
40
+ getDisplayValue(item: T): string;
41
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LookupSearchComponent<any>, never>;
42
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LookupSearchComponent<any>, "abp-lookup-search", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; "isSignal": true; }; "displayKey": { "alias": "displayKey"; "required": false; "isSignal": true; }; "valueKey": { "alias": "valueKey"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "displayValue": { "alias": "displayValue"; "required": false; "isSignal": true; }; }, { "selectedValue": "selectedValueChange"; "displayValue": "displayValueChange"; "itemSelected": "itemSelected"; "searchChanged": "searchChanged"; }, ["itemTemplate", "noResultsTemplate"], never, true, never>;
43
+ }
44
+
45
+ export { LookupSearchComponent };
46
+ export type { LookupItem, LookupSearchFn };
File without changes