primeng 18.0.2 → 18.0.3-lts
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/api/licensemanager.d.ts +4 -0
- package/api/public_api.d.ts +1 -0
- package/datepicker/datepicker.d.ts +22 -88
- package/esm2022/api/licensemanager.mjs +114 -0
- package/esm2022/api/public_api.mjs +2 -1
- package/esm2022/basecomponent/basecomponent.mjs +3 -1
- package/esm2022/calendar/calendar.mjs +8 -9
- package/esm2022/datepicker/datepicker.mjs +8 -9
- package/esm2022/tag/tag.mjs +1 -2
- package/esm2022/tree/tree.mjs +3 -5
- package/fesm2022/primeng-api.mjs +115 -1
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -0
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +7 -8
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +7 -8
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +0 -1
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +2 -4
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/package.json +203 -203
- package/tag/tag.d.ts +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-tree.mjs","sources":["../../src/tree/style/treestyle.ts","../../src/tree/tree.ts","../../src/tree/primeng-tree.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-tree {\n background: ${dt('tree.background')};\n color: ${dt('tree.color')};\n padding: ${dt('tree.padding')};\n}\n\n.p-tree-root-children,\n.p-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: ${dt('tree.gap')};\n}\n\n.p-tree-root-children {\n padding: 0;\n padding-block-start: ${dt('tree.gap')};\n}\n\n.p-tree-node-children {\n padding-block-start: ${dt('tree.gap')};\n padding-inline-start: ${dt('tree.indent')};\n}\n\n.p-tree-node {\n padding: 0;\n outline: 0 none;\n}\n\n.p-tree-node-content {\n border-radius: ${dt('tree.node.border.radius')};\n padding: ${dt('tree.node.padding')};\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: ${dt('tree.node.color')};\n gap: ${dt('tree.node.gap')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n}\n\n.p-tree-node:focus-visible > .p-tree-node-content {\n box-shadow: ${dt('tree.node.focus.ring.shadow')};\n outline: ${dt('tree.node.focus.ring.width')} ${dt('tree.node.focus.ring.style')} ${dt('tree.node.focus.ring.color')};\n outline-offset: ${dt('tree.node.focus.ring.offset')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\n background: ${dt('tree.node.hover.background')};\n color: ${dt('tree.node.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\n color: ${dt('tree.node.icon.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected {\n background: ${dt('tree.node.selected.background')};\n color: ${dt('tree.node.selected.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\n color: inherit;\n}\n\n.p-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: ${dt('tree.node.toggle.button.size')};\n height: ${dt('tree.node.toggle.button.size')};\n color: ${dt('tree.node.toggle.button.color')};\n border: 0 none;\n background: transparent;\n border-radius: ${dt('tree.node.toggle.button.border.radius')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, border-color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n outline-color: transparent;\n padding: 0;\n}\n\n.p-tree-node-toggle-button:enabled:hover {\n background: ${dt('tree.node.toggle.button.hover.background')};\n color: ${dt('tree.node.toggle.button.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\n background: ${dt('tree.node.toggle.button.selected.hover.background')};\n color: ${dt('tree.node.toggle.button.selected.hover.color')};\n}\n\n.p-tree-root {\n overflow: auto;\n}\n\n.p-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n}\n\n.p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\n visibility: hidden;\n}\n\n.p-tree-node-icon {\n color: ${dt('tree.node.icon.color')};\n transition: color ${dt('tree.transition.duration')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\n color: ${dt('tree.node.icon.selected.color')};\n}\n\n.p-tree-filter-input {\n width: 100%;\n}\n\n.p-tree-loading {\n position: relative;\n height: 100%;\n}\n\n.p-tree-loading-icon {\n font-size: ${dt('tree.loading.icon.size')};\n width: ${dt('tree.loading.icon.size')};\n height: ${dt('tree.loading.icon.size')};\n}\n\n.p-tree .p-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n}\n\n.p-tree-flex-scrollable .p-tree-root {\n flex: 1;\n}\n\n/* For PrimeNG */\n.p-tree .p-tree-node-droppoint {\n height: 4px;\n list-style-type: none;\n}\n\n.p-tree .p-tree-node-droppoint-active {\n border: 0 none;\n background-color: ${dt('primary.color')};\n}\n\n.p-tree-node-content.p-tree-node-dragover {\n background: ${dt('tree.node.hover.background')};\n color: ${dt('tree.node.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-dragover .p-tree-node-icon {\n color: ${dt('tree.node.icon.hover.color')};\n}\n\n.p-tree-horizontal {\n width: auto;\n padding-inline-start: 0;\n padding-inline-end: 0;\n overflow: auto;\n}\n\n.p-tree.p-tree-horizontal table,\n.p-tree.p-tree-horizontal tr,\n.p-tree.p-tree-horizontal td {\n border-collapse: collapse;\n margin: 0;\n padding: 0;\n vertical-align: middle;\n}\n\n.p-tree-horizontal .p-tree-node-content {\n font-weight: normal;\n padding: 0.4em 1em 0.4em 0.2em;\n display: flex;\n align-items: center;\n}\n\n.p-tree-horizontal .p-tree-node-parent .p-tree-node-content {\n font-weight: normal;\n white-space: nowrap;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node.p-tree-node-leaf,\n.p-tree.p-tree-horizontal .p-tree-node.p-tree-node-collapsed {\n padding-inline-end: 0;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node-children {\n padding: 0;\n margin: 0;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node-connector {\n width: 1px;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node-connector-table {\n height: 100%;\n width: 1px;\n}\n\n.p-tree.p-tree-horizontal table {\n height: 0;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-tree p-component': true,\n 'p-tree-selectable': instance.selectionMode != null,\n 'p-tree-loading': instance.loading,\n 'p-tree-flex-scrollable': instance.scrollHeight === 'flex',\n 'p-tree-node-dragover': instance.dragHover\n }),\n mask: 'p-tree-mask p-overlay-mask',\n loadingIcon: 'p-tree-loading-icon',\n pcFilterInput: 'p-tree-filter-input',\n wrapper: 'p-tree-root', //TODO: discuss\n rootChildren: 'p-tree-root-children',\n node: ({ instance }) => ({ 'p-tree-node': true, 'p-tree-node-leaf': instance.isLeaf() }),\n nodeContent: ({ instance }) => ({\n 'p-tree-node-content': true,\n [instance.styleClass]: !!instance.styleClass,\n 'p-tree-node-selectable': instance.selectable,\n 'p-tree-node-dragover': instance.draghoverNode,\n 'p-tree-node-selected': instance.selectionMode === 'checkbox' && instance.tree.highlightOnSelect ? instance.checked : instance.selected\n }),\n nodeToggleButton: 'p-tree-node-toggle-button',\n nodeToggleIcon: 'p-tree-node-toggle-icon',\n nodeCheckbox: 'p-tree-node-checkbox',\n nodeIcon: 'p-tree-node-icon',\n nodeLabel: 'p-tree-node-label',\n nodeChildren: 'p-tree-node-children'\n};\n\n@Injectable()\nexport class TreeStyle extends BaseStyle {\n name = 'tree';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * Tree is used to display hierarchical data.\n *\n * [Live Demo](https://www.primeng.org/tree/)\n *\n * @module treestyle\n *\n */\nexport enum TreeClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tree',\n /**\n * Class name of the mask element\n */\n mask = 'p-tree-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-tree-loading-icon',\n /**\n * Class name of the filter input element\n */\n pcFilterInput = 'p-tree-filter-input',\n /**\n * Class name of the wrapper element\n */\n wrapper = 'p-tree-root',\n /**\n * Class name of the root children element\n */\n rootChildren = 'p-tree-root-children',\n /**\n * Class name of the node element\n */\n node = 'p-tree-node',\n /**\n * Class name of the node content element\n */\n nodeContent = 'p-tree-node-content',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'p-tree-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'p-tree-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n nodeCheckbox = 'p-tree-node-checkbox',\n /**\n * Class name of the node icon element\n */\n nodeIcon = 'p-tree-node-icon',\n /**\n * Class name of the node label element\n */\n nodeLabel = 'p-tree-node-label',\n /**\n * Class name of the node children element\n */\n nodeChildren = 'p-tree-node-children'\n}\n\nexport interface TreeStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { find, findSingle, focus, hasClass, removeAccents, resolveFieldData } from '@primeuix/utils';\nimport { BlockableUI, PrimeTemplate, ScrollerOptions, SharedModule, TranslationKeys, TreeDragDropService, TreeNode } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Checkbox } from 'primeng/checkbox';\nimport { IconField } from 'primeng/iconfield';\nimport { ChevronDownIcon, ChevronRightIcon, SearchIcon, SpinnerIcon } from 'primeng/icons';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputText } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { Scroller } from 'primeng/scroller';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { TreeStyle } from './style/treestyle';\nimport {\n TreeFilterEvent,\n TreeLazyLoadEvent,\n TreeNodeCollapseEvent,\n TreeNodeContextMenuSelectEvent,\n TreeNodeDropEvent,\n TreeNodeExpandEvent,\n TreeNodeSelectEvent,\n TreeNodeUnSelectEvent,\n TreeScrollEvent,\n TreeScrollIndexChangeEvent\n} from './tree.interface';\n\n@Component({\n selector: 'p-treeNode',\n standalone: true,\n imports: [CommonModule, Ripple, Checkbox, FormsModule, ChevronRightIcon, ChevronDownIcon, SpinnerIcon, SharedModule],\n template: `\n @if (node) {\n <li\n *ngIf=\"tree.droppableNodes\"\n class=\"p-tree-node-droppoint\"\n [attr.aria-hidden]=\"true\"\n [ngClass]=\"{ 'p-tree-node-droppoint-active': draghoverPrev }\"\n (drop)=\"onDropPoint($event, -1)\"\n (dragover)=\"onDropPointDragOver($event)\"\n (dragenter)=\"onDropPointDragEnter($event, -1)\"\n (dragleave)=\"onDropPointDragLeave($event)\"\n ></li>\n <li\n [ngClass]=\"nodeClass\"\n [ngStyle]=\"{ height: itemSize + 'px' }\"\n [style]=\"node.style\"\n [attr.aria-label]=\"node.label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node.children ? node.children.length : 0\"\n [attr.aria-selected]=\"selected\"\n [attr.aria-expanded]=\"node.expanded\"\n [attr.aria-posinset]=\"index + 1\"\n [attr.aria-level]=\"level + 1\"\n [attr.tabindex]=\"index === 0 ? 0 : -1\"\n [attr.data-id]=\"node.key\"\n role=\"treeitem\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div\n [ngClass]=\"nodeContentClass\"\n [style.paddingLeft]=\"level * indentation + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onDropNode($event)\"\n (dragover)=\"onDropNodeDragOver($event)\"\n (dragenter)=\"onDropNodeDragEnter($event)\"\n (dragleave)=\"onDropNodeDragLeave($event)\"\n [draggable]=\"tree.draggableNodes\"\n (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragStop($event)\"\n >\n <button type=\"button\" [attr.data-pc-section]=\"'toggler'\" class=\"p-tree-node-toggle-button\" (click)=\"toggle($event)\" pRipple tabindex=\"-1\">\n <ng-container *ngIf=\"!tree.togglerIconTemplate && !tree._togglerIconTemplate\">\n <ng-container *ngIf=\"!node.loading\">\n <ChevronRightIcon *ngIf=\"!node.expanded\" [styleClass]=\"'p-tree-node-toggle-icon'\" />\n <ChevronDownIcon *ngIf=\"node.expanded\" [styleClass]=\"'p-tree-node-toggle-icon'\" />\n </ng-container>\n <ng-container *ngIf=\"loadingMode === 'icon' && node.loading\">\n <SpinnerIcon [styleClass]=\"'pi-spin p-tree-node-toggle-icon'\" />\n </ng-container>\n </ng-container>\n <span *ngIf=\"tree.togglerIconTemplate || tree._togglerIconTemplate\" class=\"p-tree-node-toggle-icon\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate || tree._togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\n </span>\n </button>\n\n <p-checkbox\n [ngModel]=\"isSelected()\"\n styleClass=\"p-tree-node-checkbox\"\n [binary]=\"true\"\n [indeterminate]=\"node.partialSelected\"\n *ngIf=\"tree.selectionMode == 'checkbox'\"\n [disabled]=\"node.selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' ? 'filled' : 'outlined' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-p-partialchecked]=\"node.partialSelected\"\n [tabindex]=\"-1\"\n >\n <ng-container *ngIf=\"tree.checkboxIconTemplate || tree._checkboxIconTemplate\">\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node.partialSelected,\n class: 'p-tree-node-checkbox'\n }\n \"\n ></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n\n <span [class]=\"getIcon()\" *ngIf=\"node.icon || node.expandedIcon || node.collapsedIcon\"></span>\n <span class=\"p-tree-node-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{ node.label }}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\n </span>\n </span>\n </div>\n <ul class=\"p-tree-node-children\" style=\"display: none;\" *ngIf=\"!tree.virtualScroll && node.children && node.expanded\" [style.display]=\"node.expanded ? 'block' : 'none'\" role=\"group\">\n <p-treeNode\n *ngFor=\"let childNode of node.children; let firstChild = first; let lastChild = last; let index = index; trackBy: tree.trackBy.bind(this)\"\n [node]=\"childNode\"\n [parentNode]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [itemSize]=\"itemSize\"\n [level]=\"level + 1\"\n [loadingMode]=\"loadingMode\"\n ></p-treeNode>\n </ul>\n </li>\n\n <li\n *ngIf=\"tree.droppableNodes && lastChild\"\n class=\"p-tree-node-droppoint\"\n [ngClass]=\"{ 'p-tree-node-droppoint-active': draghoverNext }\"\n (drop)=\"onDropPoint($event, 1)\"\n [attr.aria-hidden]=\"true\"\n (dragover)=\"onDropPointDragOver($event)\"\n (dragenter)=\"onDropPointDragEnter($event, 1)\"\n (dragleave)=\"onDropPointDragLeave($event)\"\n ></li>\n }\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class UITreeNode extends BaseComponent implements OnInit {\n static ICON_CLASS: string = 'p-tree-node-icon ';\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode<any> | undefined;\n\n @Input() parentNode: TreeNode<any> | undefined;\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input({ transform: booleanAttribute }) firstChild: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) lastChild: boolean | undefined;\n\n @Input({ transform: numberAttribute }) level: number | undefined;\n\n @Input({ transform: numberAttribute }) indentation: number | undefined;\n\n @Input({ transform: numberAttribute }) itemSize: number | undefined;\n\n @Input() loadingMode: string;\n\n tree: Tree = inject(forwardRef(() => Tree));\n\n timeout: any;\n\n draghoverPrev: boolean | undefined;\n\n draghoverNext: boolean | undefined;\n\n draghoverNode: boolean | undefined;\n\n get selected() {\n return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this.isSelected() : undefined;\n }\n\n get checked() {\n return this.tree.selectionMode === 'checkbox' ? this.isSelected() : undefined;\n }\n\n get nodeClass() {\n return this.tree._componentStyle.classes.node({ instance: this });\n }\n\n get nodeContentClass() {\n return this.tree._componentStyle.classes.nodeContent({ instance: this });\n }\n\n get selectable() {\n return this.node.selectable === false ? false : this.tree.selectionMode != null;\n }\n\n ngOnInit() {\n super.ngOnInit();\n (<TreeNode>this.node).parent = this.parentNode;\n const nativeElement = this.tree.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('p-dialog');\n if (this.parentNode && !pDialogWrapper) {\n this.setAllNodesTabIndexes();\n this.tree.syncNodeOption(<TreeNode>this.node, <TreeNode<any>[]>this.tree.value, 'parent', this.tree.getNodeWithKey(<string>this.parentNode.key, <TreeNode<any>[]>this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node).icon) icon = (<TreeNode>this.node).icon as string;\n else icon = (<TreeNode>this.node).expanded && (<TreeNode>this.node).children && (<TreeNode>this.node).children?.length ? (<TreeNode>this.node).expandedIcon : (<TreeNode>this.node).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon + ' p-tree-node-icon';\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(<TreeNode>this.node);\n }\n\n toggle(event: Event) {\n if ((<TreeNode>this.node).expanded) this.collapse(event);\n else this.expand(event);\n\n event.stopPropagation();\n }\n\n expand(event: Event) {\n (<TreeNode>this.node).expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeExpand.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n collapse(event: Event) {\n (<TreeNode>this.node).expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n event.preventDefault();\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, <TreeNode>this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(<TreeNode>this.node);\n }\n\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n\n onDropPoint(event: DragEvent, position: number) {\n event.preventDefault();\n let dragNode = this.tree.dragNode;\n let dragNodeIndex = this.tree.dragNodeIndex;\n let dragNodeScope = this.tree.dragNodeScope;\n let isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? position === 1 || dragNodeIndex !== <number>this.index - 1 : true;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, dragNodeScope) && isValidDropPointIndex) {\n let dropParams = { ...this.createDropPointEventMetadata(<number>position) };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n } else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event: any) {\n let newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = event.dragNodeSubNodes === newNodeList ? (event.dragNodeIndex > event.index ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n } else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position: number) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position: position\n };\n }\n\n onDropPointDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n if (position < 0) this.draghoverPrev = true;\n else this.draghoverNext = true;\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event: any) {\n if (this.tree.draggableNodes && (<TreeNode>this.node).draggable !== false) {\n event.dataTransfer.setData('text', 'data');\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n } else {\n event.preventDefault();\n }\n }\n\n onDragStop(event: any) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false) {\n let dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n let dropParams = { ...this.createDropNodeEventMetadata() };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n } else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event: any) {\n let dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children) event.dropNode.children.push(event.dragNode);\n else event.dropNode.children = [event.dragNode];\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false && this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event: any) {\n if (this.tree.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (!this.isSameNode(event) || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.code) {\n //down arrow\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n\n //up arrow\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n\n //right arrow\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n\n //left arrow\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n\n //enter\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onEnter(event);\n break;\n //tab\n case 'Tab':\n this.setAllNodesTabIndexes();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onArrowUp(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : (<HTMLDivElement>event.target).parentElement;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n }\n\n onArrowDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement && listElement.children.length > 0) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.parentElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement.parentElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n }\n\n onArrowRight(event: KeyboardEvent) {\n if (!this.node?.expanded && !this.tree.isNodeLeaf(<TreeNode>this.node)) {\n this.expand(event);\n (<HTMLDivElement>event.currentTarget).tabIndex = -1;\n\n setTimeout(() => {\n this.onArrowDown(event);\n }, 1);\n }\n event.preventDefault();\n }\n\n onArrowLeft(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n\n if (this.level === 0 && !this.node?.expanded) {\n return false;\n }\n\n if (this.node?.expanded) {\n this.collapse(event);\n return;\n }\n\n let parentNodeElement = this.getParentNodeElement(nodeElement.parentElement);\n\n if (parentNodeElement) {\n this.focusRowChange(event.currentTarget, parentNodeElement);\n }\n\n event.preventDefault();\n }\n\n onEnter(event: KeyboardEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);\n event.preventDefault();\n }\n\n setAllNodesTabIndexes() {\n const nodes = <any>find(this.tree.el.nativeElement, '.p-tree-node');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n if (nodes.length) {\n ([...nodes][0] as any).tabIndex = 0;\n }\n }\n\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.tree.selectionMode !== null) {\n const elements = [...find(this.tree.el.nativeElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element: any) => element.tabIndex === -1)) {\n (elements[0] as any).tabIndex = 0;\n }\n }\n }\n\n findNextSiblingOfAncestor(nodeElement: any): any {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement: any): any {\n const listElement = <HTMLElement>Array.from(nodeElement.children).find((el: any) => hasClass(el, 'p-tree-node'));\n const childrenListElement = listElement?.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement: HTMLElement | Element) {\n const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;\n\n return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element: any) {\n if (this.tree.droppableNodes) (element.children[1] as HTMLElement).focus();\n else (element.children[0] as HTMLElement).focus();\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.children[0].tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n }\n\n focusVirtualNode() {\n this.timeout = setTimeout(() => {\n let node = <any>findSingle(document.body, `[data-id=\"${<TreeNode>this.node?.key ?? <TreeNode>this.node?.data}\"]`);\n focus(node);\n }, 1);\n }\n}\n/**\n * Tree is used to display hierarchical data.\n * @group Components\n */\n@Component({\n selector: 'p-tree',\n standalone: true,\n imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, IconField, InputIcon, UITreeNode],\n template: `\n <div [ngClass]=\"containerClass\" [ngStyle]=\"style\" [class]=\"styleClass\" (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter()\" (dragleave)=\"onDragLeave($event)\">\n <div class=\"p-tree-mask p-overlay-mask\" *ngIf=\"loading && loadingMode === 'mask'\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'p-tree-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate || _loadingIconTemplate\" class=\"p-tree-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n @if (filterTemplate || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate || _filterTemplate; context: { $implicit: filterOptions }\"></ng-container>\n } @else {\n <p-iconField *ngIf=\"filter\">\n <input #filter pInputText type=\"search\" autocomplete=\"off\" class=\"p-tree-filter-input\" [attr.placeholder]=\"filterPlaceholder\" (keydown.enter)=\"$event.preventDefault()\" (input)=\"_filter($event.target.value)\" />\n <p-inputIcon>\n <SearchIcon *ngIf=\"!filterIconTemplate && !_filterIconTemplate\" class=\"p-tree-filter-icon\" />\n <span *ngIf=\"filterIconTemplate || _filterIconTemplate\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate || _filterIconTemplate\"></ng-template>\n </span>\n </p-inputIcon>\n </p-iconField>\n }\n\n <ng-container *ngIf=\"getRootNode()?.length\">\n <p-scroller\n #scroller\n *ngIf=\"virtualScroll\"\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n styleClass=\"p-tree-root\"\n [style]=\"{ height: scrollHeight !== 'flex' ? scrollHeight : undefined }\"\n [scrollHeight]=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize || _virtualNodeHeight\"\n [lazy]=\"lazy\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ul *ngIf=\"items\" class=\"p-tree-root-children\" [ngClass]=\"scrollerOptions.contentStyleClass\" [style]=\"scrollerOptions.contentStyle\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode\n #treeNode\n *ngFor=\"let rowNode of items; let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy\"\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\n [node]=\"rowNode.node\"\n [parentNode]=\"rowNode.parent\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"getIndex(scrollerOptions, index)\"\n [itemSize]=\"scrollerOptions.itemSize\"\n [indentation]=\"indentation\"\n [loadingMode]=\"loadingMode\"\n ></p-treeNode>\n </ul>\n </ng-template>\n <ng-container *ngIf=\"loaderTemplate || _loaderTemplate\">\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n </ng-container>\n </p-scroller>\n <ng-container *ngIf=\"!virtualScroll\">\n <div #wrapper class=\"p-tree-root\" [style.max-height]=\"scrollHeight\">\n <ul class=\"p-tree-root-children\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode\n *ngFor=\"let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy.bind(this)\"\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode\"\n ></p-treeNode>\n </ul>\n </div>\n </ng-container>\n </ng-container>\n\n <div class=\"p-tree-empty-message\" *ngIf=\"!loading && (getRootNode() == null || getRootNode().length === 0)\">\n <ng-container *ngIf=\"!emptyMessageTemplate && !_emptyMessageTemplate; else emptyFilter\">\n {{ emptyMessageLabel }}\n </ng-container>\n <ng-template #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate || _emptyMessageTemplate\"></ng-template>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [TreeStyle]\n})\nexport class Tree extends BaseComponent implements OnInit, AfterContentInit, OnChanges, OnDestroy, BlockableUI {\n /**\n * An array of treenodes.\n * @group Props\n */\n @Input() value: TreeNode<any> | TreeNode<any>[] | any[] | any;\n /**\n * Defines the selection mode.\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | 'checkbox' | null | undefined;\n /**\n * Loading mode display.\n * @group Props\n */\n @Input() loadingMode: 'mask' | 'icon' = 'mask';\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n @Input() selection: any;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Context menu instance.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Scope of the draggable nodes to match a droppableScope.\n * @group Props\n */\n @Input() draggableScope: any;\n /**\n * Scope of the droppable nodes to match a draggableScope.\n * @group Props\n */\n @Input() droppableScope: any;\n /**\n * Whether the nodes are draggable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) draggableNodes: boolean | undefined;\n /**\n * Whether the nodes are droppable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) droppableNodes: boolean | undefined;\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n /**\n * Whether checkbox selections propagate to ancestor nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionUp: boolean = true;\n /**\n * Whether checkbox selections propagate to descendant nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionDown: boolean = true;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Text to display when there is no data.\n * @group Props\n */\n @Input() emptyMessage: string = '';\n /**\n * Used to define a string that labels the tree.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Defines a string that labels the toggler icon for accessibility.\n * @group Props\n */\n @Input() togglerAriaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) validateDrop: boolean | undefined;\n /**\n * When specified, displays an input field to filter the items.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) filter: boolean | undefined;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n @Input() filterBy: string = 'label';\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterOptions: any;\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n @Input() filterPlaceholder: string | undefined;\n /**\n * Values after the tree nodes are filtered.\n * @group Props\n */\n @Input() filteredNodes: TreeNode<any>[] | undefined | null;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Height of the scrollable viewport.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * Indentation factor for spacing of the nested node when virtual scrolling is enabled.\n * @group Props\n */\n @Input({ transform: numberAttribute }) indentation: number = 1.5;\n /**\n * Custom templates of the component.\n * @group Props\n */\n @Input() _templateMap: any;\n /**\n * Function to optimize the node list rendering, default algorithm checks for object identity.\n * @group Props\n */\n @Input() trackBy: Function = (index: number, item: any) => item;\n /**\n * Highlights the node on select.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) highlightOnSelect: boolean = false;\n /**\n * Height of the node.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n _virtualNodeHeight: number | undefined;\n @Input() get virtualNodeHeight(): number | undefined {\n return this._virtualNodeHeight;\n }\n set virtualNodeHeight(val: number | undefined) {\n this._virtualNodeHeight = val;\n console.log('The virtualNodeHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * Callback to invoke on selection change.\n * @param {(TreeNode<any> | TreeNode<any>[] | null)} event - Custom selection change event.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeNode<any> | TreeNode<any>[] | null> = new EventEmitter<TreeNode<any> | TreeNode<any>[] | null>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeNodeSelectEvent} event - Node select event.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeNodeSelectEvent> = new EventEmitter<TreeNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeNodeUnSelectEvent} event - Node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeNodeUnSelectEvent> = new EventEmitter<TreeNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeNodeExpandEvent> = new EventEmitter<TreeNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeNodeCollapseEvent> = new EventEmitter<TreeNodeCollapseEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {onNodeContextMenuSelect} event - Node context menu select event.\n * @group Emits\n */\n @Output() onNodeContextMenuSelect: EventEmitter<TreeNodeContextMenuSelectEvent> = new EventEmitter<TreeNodeContextMenuSelectEvent>();\n /**\n * Callback to invoke when a node is dropped.\n * @param {TreeNodeDropEvent} event - Node drop event.\n * @group Emits\n */\n @Output() onNodeDrop: EventEmitter<TreeNodeDropEvent> = new EventEmitter<TreeNodeDropEvent>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {TreeLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TreeLazyLoadEvent> = new EventEmitter<TreeLazyLoadEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position changes.\n * @param {TreeScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n @Output() onScroll: EventEmitter<TreeScrollEvent> = new EventEmitter<TreeScrollEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.\n * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.\n * @group Emits\n */\n @Output() onScrollIndexChange: EventEmitter<TreeScrollIndexChangeEvent> = new EventEmitter<TreeScrollIndexChangeEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeFilterEvent> = new EventEmitter<TreeFilterEvent>();\n /**\n * Filter template.\n * @group Templates\n */\n @ContentChild('filter', { descendants: false }) filterTemplate: TemplateRef<any>;\n /**\n * Node template.\n * @group Templates\n */\n @ContentChild('node', { descendants: false }) nodeTemplate: TemplateRef<any> | undefined;\n /**\n * Header template.\n * @group Templates\n */\n @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n /**\n * Footer template.\n * @group Templates\n */\n @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n /**\n * Loader template.\n * @group Templates\n */\n @ContentChild('loader', { descendants: false }) loaderTemplate: TemplateRef<any> | undefined;\n /**\n * Empty message template.\n * @group Templates\n */\n @ContentChild('empty', { descendants: false }) emptyMessageTemplate: TemplateRef<any> | undefined;\n /**\n * Toggler icon template.\n * @group Templates\n */\n @ContentChild('togglericon', { descendants: false }) togglerIconTemplate: TemplateRef<any> | undefined;\n /**\n * Checkbox icon template.\n * @group Templates\n */\n @ContentChild('checkboxicon', { descendants: false }) checkboxIconTemplate: TemplateRef<any> | undefined;\n /**\n * Loading icon template.\n * @group Templates\n */\n @ContentChild('loadingicon', { descendants: false }) loadingIconTemplate: TemplateRef<any> | undefined;\n /**\n * Filter icon template.\n * @group Templates\n */\n @ContentChild('filtericon', { descendants: false }) filterIconTemplate: TemplateRef<any> | undefined;\n\n @ViewChild('filter') filterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n @ViewChild('wrapper') wrapperViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) private templates: QueryList<PrimeTemplate> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _emptyMessageTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _loaderTemplate: TemplateRef<any> | undefined;\n\n _togglerIconTemplate: TemplateRef<any> | undefined;\n\n _checkboxIconTemplate: TemplateRef<any> | undefined;\n\n _loadingIconTemplate: TemplateRef<any> | undefined;\n\n _filterIconTemplate: TemplateRef<any> | undefined;\n\n _filterTemplate: TemplateRef<any> | undefined;\n\n ngAfterContentInit() {\n if ((this.templates as QueryList<PrimeTemplate>).length) {\n this._templateMap = {};\n }\n\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'empty':\n this._emptyMessageTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n case 'togglericon':\n this._togglerIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this._checkboxIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n\n case 'filter':\n this._filterTemplate = item.template;\n break;\n\n default:\n this._templateMap[<any>item.name] = item.template;\n break;\n }\n });\n }\n\n serializedValue: Nullable<TreeNode<any>[]>;\n\n public nodeTouched: boolean | undefined | null;\n\n public dragNodeTree: Tree | undefined | null;\n\n public dragNode: TreeNode<any> | undefined | null;\n\n public dragNodeSubNodes: TreeNode<any>[] | undefined | null;\n\n public dragNodeIndex: number | undefined | null;\n\n public dragNodeScope: any;\n\n public dragHover: boolean | undefined | null;\n\n public dragStartSubscription: Subscription | undefined | null;\n\n public dragStopSubscription: Subscription | undefined | null;\n\n _componentStyle = inject(TreeStyle);\n\n constructor(@Optional() public dragDropService: TreeDragDropService) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.filterBy) {\n this.filterOptions = {\n filter: (value) => this._filter(value),\n reset: () => this.resetFilter()\n };\n }\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n this.updateSerializedValue();\n if (this.hasFilterActive()) {\n this._filter(this.filterViewChild.nativeElement.value);\n }\n }\n }\n\n get containerClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent: TreeNode<any> | null, nodes: TreeNode<any>[] | any, level: number, visible: boolean) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (this.serializedValue as TreeNode<any>[]).push(<TreeNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = <Element>event.target;\n if (hasClass(eventTarget, 'p-tree-toggler') || hasClass(eventTarget, 'p-tree-toggler-icon')) {\n return;\n } else if (this.selectionMode) {\n if (node.selectable === false) {\n node.style = '--p-focus-ring-color: none;';\n return;\n } else {\n node.style = '--p-focus-ring-color: var(--primary-color)';\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(<string>node.key, <TreeNode<any>[]>this.filteredNodes) as TreeNode;\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown) this.propagateDown(node, false);\n else this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.propagateSelectionDown) this.propagateDown(node, true);\n else this.selection = [...(this.selection || []), node];\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n } else {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(<TreeNode>node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = !metaKey ? [] : this.selection || [];\n this.selection = [...this.selection, node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection = null;\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = node;\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n } else {\n if (selected) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = [...(this.selection || []), node];\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode<any>) {\n if (this.contextMenu) {\n let eventTarget = <Element>event.target;\n\n if (eventTarget.className && eventTarget.className.indexOf('p-tree-toggler') === 0) {\n return;\n } else {\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) this.selectionChange.emit(node);\n else this.selectionChange.emit([node]);\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;\n index = areNodesEqual ? 0 : -1;\n } else {\n for (let i = 0; i < this.selection.length; i++) {\n let selectedNode = this.selection[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node: TreeNode, parentNodes: TreeNode<any>[], option: any, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(<string>node.key, parentNodes) : null;\n if (_node) {\n (<any>_node)[option] = value || (<any>node)[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n hasFilterActive() {\n return this.filter && this.filterViewChild?.nativeElement?.value.length > 0;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode<any>[]): TreeNode<any> | undefined {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for (let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount == node.children.length) {\n this.selection = [...(this.selection || []), node];\n node.partialSelected = false;\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n }\n\n if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n\n if (select && index == -1) {\n this.selection = [...(this.selection || []), node];\n } else if (!select && index > -1) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode == 'checkbox';\n }\n\n isNodeLeaf(node: TreeNode): boolean {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\n if (this._templateMap) return node.type ? this._templateMap[node.type] : this._templateMap['default'];\n else return null;\n }\n\n onDragOver(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n (<any>event).dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n event.preventDefault();\n let dragNode = this.dragNode as TreeNode;\n\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = <number>this.dragNodeIndex;\n this.value = this.value || [];\n\n if (this.validateDrop) {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex,\n accept: () => {\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n });\n } else {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex\n });\n\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n }\n }\n }\n\n processTreeDrop(dragNode: TreeNode, dragNodeIndex: number) {\n (<TreeNode<any>[]>this.dragNodeSubNodes).splice(dragNodeIndex, 1);\n (this.value as TreeNode<any>[]).push(dragNode);\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n\n onDragEnter() {\n if (this.droppableNodes && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (this.droppableNodes) {\n let rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode<any> | null, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') return dropScope === dragScope;\n else if (Array.isArray(dragScope)) return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n } else if (Array.isArray(dropScope)) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n } else if (Array.isArray(dragScope)) {\n for (let s of dropScope) {\n for (let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n public _filter(value: string) {\n let filterValue = value;\n if (filterValue === '') {\n this.filteredNodes = null;\n } else {\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for (let node of <TreeNode<any>[]>this.value) {\n let copyNode = { ...node };\n let paramsWithoutNode = { searchFields, filterText, isStrictMode };\n if (\n (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\n });\n }\n\n /**\n * Resets filter.\n * @group Method\n */\n public resetFilter() {\n this.filteredNodes = null;\n\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n }\n /**\n * Scrolls to virtual index.\n * @param {number} number - Index to be scrolled.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.virtualScroll && this.scroller?.scrollToIndex(index);\n }\n /**\n * Scrolls to virtual index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n } else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n findFilteredNodes(node: TreeNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeNode, params: any) {\n let { searchFields, filterText, isStrictMode } = params;\n let matched = false;\n for (let field of searchFields) {\n let fieldValue = removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;\n }\n\n return matched;\n }\n\n getIndex(options: any, index: number) {\n const getItemOptions = options['getItemOptions'];\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n@NgModule({\n imports: [Tree, SharedModule],\n exports: [Tree, SharedModule]\n})\nexport class TreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"primeng-tree.mjs","sources":["../../src/tree/style/treestyle.ts","../../src/tree/tree.ts","../../src/tree/primeng-tree.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-tree {\n background: ${dt('tree.background')};\n color: ${dt('tree.color')};\n padding: ${dt('tree.padding')};\n}\n\n.p-tree-root-children,\n.p-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: ${dt('tree.gap')};\n}\n\n.p-tree-root-children {\n padding: 0;\n padding-block-start: ${dt('tree.gap')};\n}\n\n.p-tree-node-children {\n padding-block-start: ${dt('tree.gap')};\n padding-inline-start: ${dt('tree.indent')};\n}\n\n.p-tree-node {\n padding: 0;\n outline: 0 none;\n}\n\n.p-tree-node-content {\n border-radius: ${dt('tree.node.border.radius')};\n padding: ${dt('tree.node.padding')};\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: ${dt('tree.node.color')};\n gap: ${dt('tree.node.gap')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n}\n\n.p-tree-node:focus-visible > .p-tree-node-content {\n box-shadow: ${dt('tree.node.focus.ring.shadow')};\n outline: ${dt('tree.node.focus.ring.width')} ${dt('tree.node.focus.ring.style')} ${dt('tree.node.focus.ring.color')};\n outline-offset: ${dt('tree.node.focus.ring.offset')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\n background: ${dt('tree.node.hover.background')};\n color: ${dt('tree.node.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\n color: ${dt('tree.node.icon.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected {\n background: ${dt('tree.node.selected.background')};\n color: ${dt('tree.node.selected.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\n color: inherit;\n}\n\n.p-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: ${dt('tree.node.toggle.button.size')};\n height: ${dt('tree.node.toggle.button.size')};\n color: ${dt('tree.node.toggle.button.color')};\n border: 0 none;\n background: transparent;\n border-radius: ${dt('tree.node.toggle.button.border.radius')};\n transition: background ${dt('tree.transition.duration')}, color ${dt('tree.transition.duration')}, border-color ${dt('tree.transition.duration')}, outline-color ${dt('tree.transition.duration')}, box-shadow ${dt('tree.transition.duration')};\n outline-color: transparent;\n padding: 0;\n}\n\n.p-tree-node-toggle-button:enabled:hover {\n background: ${dt('tree.node.toggle.button.hover.background')};\n color: ${dt('tree.node.toggle.button.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\n background: ${dt('tree.node.toggle.button.selected.hover.background')};\n color: ${dt('tree.node.toggle.button.selected.hover.color')};\n}\n\n.p-tree-root {\n overflow: auto;\n}\n\n.p-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n}\n\n.p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\n visibility: hidden;\n}\n\n.p-tree-node-icon {\n color: ${dt('tree.node.icon.color')};\n transition: color ${dt('tree.transition.duration')};\n}\n\n.p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\n color: ${dt('tree.node.icon.selected.color')};\n}\n\n.p-tree-filter-input {\n width: 100%;\n}\n\n.p-tree-loading {\n position: relative;\n height: 100%;\n}\n\n.p-tree-loading-icon {\n font-size: ${dt('tree.loading.icon.size')};\n width: ${dt('tree.loading.icon.size')};\n height: ${dt('tree.loading.icon.size')};\n}\n\n.p-tree .p-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n}\n\n.p-tree-flex-scrollable .p-tree-root {\n flex: 1;\n}\n\n/* For PrimeNG */\n.p-tree .p-tree-node-droppoint {\n height: 4px;\n list-style-type: none;\n}\n\n.p-tree .p-tree-node-droppoint-active {\n border: 0 none;\n background-color: ${dt('primary.color')};\n}\n\n.p-tree-node-content.p-tree-node-dragover {\n background: ${dt('tree.node.hover.background')};\n color: ${dt('tree.node.hover.color')};\n}\n\n.p-tree-node-content.p-tree-node-dragover .p-tree-node-icon {\n color: ${dt('tree.node.icon.hover.color')};\n}\n\n.p-tree-horizontal {\n width: auto;\n padding-inline-start: 0;\n padding-inline-end: 0;\n overflow: auto;\n}\n\n.p-tree.p-tree-horizontal table,\n.p-tree.p-tree-horizontal tr,\n.p-tree.p-tree-horizontal td {\n border-collapse: collapse;\n margin: 0;\n padding: 0;\n vertical-align: middle;\n}\n\n.p-tree-horizontal .p-tree-node-content {\n font-weight: normal;\n padding: 0.4em 1em 0.4em 0.2em;\n display: flex;\n align-items: center;\n}\n\n.p-tree-horizontal .p-tree-node-parent .p-tree-node-content {\n font-weight: normal;\n white-space: nowrap;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node.p-tree-node-leaf,\n.p-tree.p-tree-horizontal .p-tree-node.p-tree-node-collapsed {\n padding-inline-end: 0;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node-children {\n padding: 0;\n margin: 0;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node-connector {\n width: 1px;\n}\n\n.p-tree.p-tree-horizontal .p-tree-node-connector-table {\n height: 100%;\n width: 1px;\n}\n\n.p-tree.p-tree-horizontal table {\n height: 0;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-tree p-component': true,\n 'p-tree-selectable': instance.selectionMode != null,\n 'p-tree-loading': instance.loading,\n 'p-tree-flex-scrollable': instance.scrollHeight === 'flex',\n 'p-tree-node-dragover': instance.dragHover\n }),\n mask: 'p-tree-mask p-overlay-mask',\n loadingIcon: 'p-tree-loading-icon',\n pcFilterInput: 'p-tree-filter-input',\n wrapper: 'p-tree-root', //TODO: discuss\n rootChildren: 'p-tree-root-children',\n node: ({ instance }) => ({ 'p-tree-node': true, 'p-tree-node-leaf': instance.isLeaf() }),\n nodeContent: ({ instance }) => ({\n 'p-tree-node-content': true,\n [instance.styleClass]: !!instance.styleClass,\n 'p-tree-node-selectable': instance.selectable,\n 'p-tree-node-dragover': instance.draghoverNode,\n 'p-tree-node-selected': instance.selectionMode === 'checkbox' && instance.tree.highlightOnSelect ? instance.checked : instance.selected\n }),\n nodeToggleButton: 'p-tree-node-toggle-button',\n nodeToggleIcon: 'p-tree-node-toggle-icon',\n nodeCheckbox: 'p-tree-node-checkbox',\n nodeIcon: 'p-tree-node-icon',\n nodeLabel: 'p-tree-node-label',\n nodeChildren: 'p-tree-node-children'\n};\n\n@Injectable()\nexport class TreeStyle extends BaseStyle {\n name = 'tree';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * Tree is used to display hierarchical data.\n *\n * [Live Demo](https://www.primeng.org/tree/)\n *\n * @module treestyle\n *\n */\nexport enum TreeClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tree',\n /**\n * Class name of the mask element\n */\n mask = 'p-tree-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-tree-loading-icon',\n /**\n * Class name of the filter input element\n */\n pcFilterInput = 'p-tree-filter-input',\n /**\n * Class name of the wrapper element\n */\n wrapper = 'p-tree-root',\n /**\n * Class name of the root children element\n */\n rootChildren = 'p-tree-root-children',\n /**\n * Class name of the node element\n */\n node = 'p-tree-node',\n /**\n * Class name of the node content element\n */\n nodeContent = 'p-tree-node-content',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'p-tree-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'p-tree-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n nodeCheckbox = 'p-tree-node-checkbox',\n /**\n * Class name of the node icon element\n */\n nodeIcon = 'p-tree-node-icon',\n /**\n * Class name of the node label element\n */\n nodeLabel = 'p-tree-node-label',\n /**\n * Class name of the node children element\n */\n nodeChildren = 'p-tree-node-children'\n}\n\nexport interface TreeStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { find, findSingle, focus, hasClass, removeAccents, resolveFieldData } from '@primeuix/utils';\nimport { BlockableUI, PrimeTemplate, ScrollerOptions, SharedModule, TranslationKeys, TreeDragDropService, TreeNode } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Checkbox } from 'primeng/checkbox';\nimport { IconField } from 'primeng/iconfield';\nimport { CheckIcon, ChevronDownIcon, ChevronRightIcon, MinusIcon, PlusIcon, SearchIcon, SpinnerIcon } from 'primeng/icons';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputText } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { Scroller } from 'primeng/scroller';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { TreeStyle } from './style/treestyle';\nimport {\n TreeFilterEvent,\n TreeLazyLoadEvent,\n TreeNodeCollapseEvent,\n TreeNodeContextMenuSelectEvent,\n TreeNodeDropEvent,\n TreeNodeExpandEvent,\n TreeNodeSelectEvent,\n TreeNodeUnSelectEvent,\n TreeScrollEvent,\n TreeScrollIndexChangeEvent\n} from './tree.interface';\n\n@Component({\n selector: 'p-treeNode',\n standalone: true,\n imports: [CommonModule, Ripple, Checkbox, FormsModule, ChevronRightIcon, ChevronDownIcon, SpinnerIcon, SharedModule],\n template: `\n @if (node) {\n <li\n *ngIf=\"tree.droppableNodes\"\n class=\"p-tree-node-droppoint\"\n [attr.aria-hidden]=\"true\"\n [ngClass]=\"{ 'p-tree-node-droppoint-active': draghoverPrev }\"\n (drop)=\"onDropPoint($event, -1)\"\n (dragover)=\"onDropPointDragOver($event)\"\n (dragenter)=\"onDropPointDragEnter($event, -1)\"\n (dragleave)=\"onDropPointDragLeave($event)\"\n ></li>\n <li\n [ngClass]=\"nodeClass\"\n [ngStyle]=\"{ height: itemSize + 'px' }\"\n [style]=\"node.style\"\n [attr.aria-label]=\"node.label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node.children ? node.children.length : 0\"\n [attr.aria-selected]=\"selected\"\n [attr.aria-expanded]=\"node.expanded\"\n [attr.aria-posinset]=\"index + 1\"\n [attr.aria-level]=\"level + 1\"\n [attr.tabindex]=\"index === 0 ? 0 : -1\"\n [attr.data-id]=\"node.key\"\n role=\"treeitem\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div\n [ngClass]=\"nodeContentClass\"\n [style.paddingLeft]=\"level * indentation + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onDropNode($event)\"\n (dragover)=\"onDropNodeDragOver($event)\"\n (dragenter)=\"onDropNodeDragEnter($event)\"\n (dragleave)=\"onDropNodeDragLeave($event)\"\n [draggable]=\"tree.draggableNodes\"\n (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragStop($event)\"\n >\n <button type=\"button\" [attr.data-pc-section]=\"'toggler'\" class=\"p-tree-node-toggle-button\" (click)=\"toggle($event)\" pRipple tabindex=\"-1\">\n <ng-container *ngIf=\"!tree.togglerIconTemplate && !tree._togglerIconTemplate\">\n <ng-container *ngIf=\"!node.loading\">\n <ChevronRightIcon *ngIf=\"!node.expanded\" [styleClass]=\"'p-tree-node-toggle-icon'\" />\n <ChevronDownIcon *ngIf=\"node.expanded\" [styleClass]=\"'p-tree-node-toggle-icon'\" />\n </ng-container>\n <ng-container *ngIf=\"loadingMode === 'icon' && node.loading\">\n <SpinnerIcon [styleClass]=\"'pi-spin p-tree-node-toggle-icon'\" />\n </ng-container>\n </ng-container>\n <span *ngIf=\"tree.togglerIconTemplate || tree._togglerIconTemplate\" class=\"p-tree-node-toggle-icon\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate || tree._togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\n </span>\n </button>\n\n <p-checkbox\n [ngModel]=\"isSelected()\"\n styleClass=\"p-tree-node-checkbox\"\n [binary]=\"true\"\n [indeterminate]=\"node.partialSelected\"\n *ngIf=\"tree.selectionMode == 'checkbox'\"\n [disabled]=\"node.selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' ? 'filled' : 'outlined' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-p-partialchecked]=\"node.partialSelected\"\n [tabindex]=\"-1\"\n >\n <ng-container *ngIf=\"tree.checkboxIconTemplate || tree._checkboxIconTemplate\">\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node.partialSelected,\n class: 'p-tree-node-checkbox'\n }\n \"\n ></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n\n <span [class]=\"getIcon()\" *ngIf=\"node.icon || node.expandedIcon || node.collapsedIcon\"></span>\n <span class=\"p-tree-node-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{ node.label }}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\n </span>\n </span>\n </div>\n <ul class=\"p-tree-node-children\" style=\"display: none;\" *ngIf=\"!tree.virtualScroll && node.children && node.expanded\" [style.display]=\"node.expanded ? 'block' : 'none'\" role=\"group\">\n <p-treeNode\n *ngFor=\"let childNode of node.children; let firstChild = first; let lastChild = last; let index = index; trackBy: tree.trackBy.bind(this)\"\n [node]=\"childNode\"\n [parentNode]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [itemSize]=\"itemSize\"\n [level]=\"level + 1\"\n [loadingMode]=\"loadingMode\"\n ></p-treeNode>\n </ul>\n </li>\n\n <li\n *ngIf=\"tree.droppableNodes && lastChild\"\n class=\"p-tree-node-droppoint\"\n [ngClass]=\"{ 'p-tree-node-droppoint-active': draghoverNext }\"\n (drop)=\"onDropPoint($event, 1)\"\n [attr.aria-hidden]=\"true\"\n (dragover)=\"onDropPointDragOver($event)\"\n (dragenter)=\"onDropPointDragEnter($event, 1)\"\n (dragleave)=\"onDropPointDragLeave($event)\"\n ></li>\n }\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class UITreeNode extends BaseComponent implements OnInit {\n static ICON_CLASS: string = 'p-tree-node-icon ';\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode<any> | undefined;\n\n @Input() parentNode: TreeNode<any> | undefined;\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input({ transform: booleanAttribute }) firstChild: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) lastChild: boolean | undefined;\n\n @Input({ transform: numberAttribute }) level: number | undefined;\n\n @Input({ transform: numberAttribute }) indentation: number | undefined;\n\n @Input({ transform: numberAttribute }) itemSize: number | undefined;\n\n @Input() loadingMode: string;\n\n tree: Tree = inject(forwardRef(() => Tree));\n\n timeout: any;\n\n draghoverPrev: boolean | undefined;\n\n draghoverNext: boolean | undefined;\n\n draghoverNode: boolean | undefined;\n\n get selected() {\n return this.tree.selectionMode === 'single' || this.tree.selectionMode === 'multiple' ? this.isSelected() : undefined;\n }\n\n get checked() {\n return this.tree.selectionMode === 'checkbox' ? this.isSelected() : undefined;\n }\n\n get nodeClass() {\n return this.tree._componentStyle.classes.node({ instance: this });\n }\n\n get nodeContentClass() {\n return this.tree._componentStyle.classes.nodeContent({ instance: this });\n }\n\n get selectable() {\n return this.node.selectable === false ? false : this.tree.selectionMode != null;\n }\n\n ngOnInit() {\n super.ngOnInit();\n (<TreeNode>this.node).parent = this.parentNode;\n const nativeElement = this.tree.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('p-dialog');\n if (this.parentNode && !pDialogWrapper) {\n this.setAllNodesTabIndexes();\n this.tree.syncNodeOption(<TreeNode>this.node, <TreeNode<any>[]>this.tree.value, 'parent', this.tree.getNodeWithKey(<string>this.parentNode.key, <TreeNode<any>[]>this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node).icon) icon = (<TreeNode>this.node).icon as string;\n else icon = (<TreeNode>this.node).expanded && (<TreeNode>this.node).children && (<TreeNode>this.node).children?.length ? (<TreeNode>this.node).expandedIcon : (<TreeNode>this.node).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon + ' p-tree-node-icon';\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(<TreeNode>this.node);\n }\n\n toggle(event: Event) {\n if ((<TreeNode>this.node).expanded) this.collapse(event);\n else this.expand(event);\n\n event.stopPropagation();\n }\n\n expand(event: Event) {\n (<TreeNode>this.node).expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeExpand.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n collapse(event: Event) {\n (<TreeNode>this.node).expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node });\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n event.preventDefault();\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, <TreeNode>this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(<TreeNode>this.node);\n }\n\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n\n onDropPoint(event: DragEvent, position: number) {\n event.preventDefault();\n let dragNode = this.tree.dragNode;\n let dragNodeIndex = this.tree.dragNodeIndex;\n let dragNodeScope = this.tree.dragNodeScope;\n let isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? position === 1 || dragNodeIndex !== <number>this.index - 1 : true;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, dragNodeScope) && isValidDropPointIndex) {\n let dropParams = { ...this.createDropPointEventMetadata(<number>position) };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n } else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event: any) {\n let newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = event.dragNodeSubNodes === newNodeList ? (event.dragNodeIndex > event.index ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n } else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position: number) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position: position\n };\n }\n\n onDropPointDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n if (position < 0) this.draghoverPrev = true;\n else this.draghoverNext = true;\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event: any) {\n if (this.tree.draggableNodes && (<TreeNode>this.node).draggable !== false) {\n event.dataTransfer.setData('text', 'data');\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n } else {\n event.preventDefault();\n }\n }\n\n onDragStop(event: any) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node?.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event: any) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false) {\n let dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(<TreeNode>dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n let dropParams = { ...this.createDropNodeEventMetadata() };\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n } else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event: any) {\n let dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children) event.dropNode.children.push(event.dragNode);\n else event.dropNode.children = [event.dragNode];\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event: any) {\n if (this.tree.droppableNodes && this.node?.droppable !== false && this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event: any) {\n if (this.tree.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (!this.isSameNode(event) || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.code) {\n //down arrow\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n\n //up arrow\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n\n //right arrow\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n\n //left arrow\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n\n //enter\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onEnter(event);\n break;\n //tab\n case 'Tab':\n this.setAllNodesTabIndexes();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onArrowUp(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : (<HTMLDivElement>event.target).parentElement;\n\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n }\n\n onArrowDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n const listElement = nodeElement.children[1];\n\n if (listElement && listElement.children.length > 0) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.parentElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement.parentElement);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n }\n\n onArrowRight(event: KeyboardEvent) {\n if (!this.node?.expanded && !this.tree.isNodeLeaf(<TreeNode>this.node)) {\n this.expand(event);\n (<HTMLDivElement>event.currentTarget).tabIndex = -1;\n\n setTimeout(() => {\n this.onArrowDown(event);\n }, 1);\n }\n event.preventDefault();\n }\n\n onArrowLeft(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'toggler' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n\n if (this.level === 0 && !this.node?.expanded) {\n return false;\n }\n\n if (this.node?.expanded) {\n this.collapse(event);\n return;\n }\n\n let parentNodeElement = this.getParentNodeElement(nodeElement.parentElement);\n\n if (parentNodeElement) {\n this.focusRowChange(event.currentTarget, parentNodeElement);\n }\n\n event.preventDefault();\n }\n\n onEnter(event: KeyboardEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node);\n this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);\n event.preventDefault();\n }\n\n setAllNodesTabIndexes() {\n const nodes = <any>find(this.tree.el.nativeElement, '.p-tree-node');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n if (nodes.length) {\n ([...nodes][0] as any).tabIndex = 0;\n }\n }\n\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.tree.selectionMode !== null) {\n const elements = [...find(this.tree.el.nativeElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element: any) => element.tabIndex === -1)) {\n (elements[0] as any).tabIndex = 0;\n }\n }\n }\n\n findNextSiblingOfAncestor(nodeElement: any): any {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement: any): any {\n const listElement = <HTMLElement>Array.from(nodeElement.children).find((el: any) => hasClass(el, 'p-tree-node'));\n const childrenListElement = listElement?.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement: HTMLElement | Element) {\n const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;\n\n return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element: any) {\n if (this.tree.droppableNodes) (element.children[1] as HTMLElement).focus();\n else (element.children[0] as HTMLElement).focus();\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.children[0].tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n }\n\n focusVirtualNode() {\n this.timeout = setTimeout(() => {\n let node = <any>findSingle(document.body, `[data-id=\"${<TreeNode>this.node?.key ?? <TreeNode>this.node?.data}\"]`);\n focus(node);\n }, 1);\n }\n}\n/**\n * Tree is used to display hierarchical data.\n * @group Components\n */\n@Component({\n selector: 'p-tree',\n standalone: true,\n imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, UITreeNode],\n template: `\n <div [ngClass]=\"containerClass\" [ngStyle]=\"style\" [class]=\"styleClass\" (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter()\" (dragleave)=\"onDragLeave($event)\">\n <div class=\"p-tree-mask p-overlay-mask\" *ngIf=\"loading && loadingMode === 'mask'\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'p-tree-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate || _loadingIconTemplate\" class=\"p-tree-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n @if (filterTemplate || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate || _filterTemplate; context: { $implicit: filterOptions }\"></ng-container>\n } @else {\n <p-iconField *ngIf=\"filter\">\n <input #filter pInputText type=\"search\" autocomplete=\"off\" class=\"p-tree-filter-input\" [attr.placeholder]=\"filterPlaceholder\" (keydown.enter)=\"$event.preventDefault()\" (input)=\"_filter($event.target.value)\" />\n <p-inputIcon>\n <SearchIcon *ngIf=\"!filterIconTemplate && !_filterIconTemplate\" class=\"p-tree-filter-icon\" />\n <span *ngIf=\"filterIconTemplate || _filterIconTemplate\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate || _filterIconTemplate\"></ng-template>\n </span>\n </p-inputIcon>\n </p-iconField>\n }\n\n <ng-container *ngIf=\"getRootNode()?.length\">\n <p-scroller\n #scroller\n *ngIf=\"virtualScroll\"\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n styleClass=\"p-tree-root\"\n [style]=\"{ height: scrollHeight !== 'flex' ? scrollHeight : undefined }\"\n [scrollHeight]=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize || _virtualNodeHeight\"\n [lazy]=\"lazy\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ul *ngIf=\"items\" class=\"p-tree-root-children\" [ngClass]=\"scrollerOptions.contentStyleClass\" [style]=\"scrollerOptions.contentStyle\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode\n #treeNode\n *ngFor=\"let rowNode of items; let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy\"\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\n [node]=\"rowNode.node\"\n [parentNode]=\"rowNode.parent\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"getIndex(scrollerOptions, index)\"\n [itemSize]=\"scrollerOptions.itemSize\"\n [indentation]=\"indentation\"\n [loadingMode]=\"loadingMode\"\n ></p-treeNode>\n </ul>\n </ng-template>\n <ng-container *ngIf=\"loaderTemplate || _loaderTemplate\">\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n </ng-container>\n </p-scroller>\n <ng-container *ngIf=\"!virtualScroll\">\n <div #wrapper class=\"p-tree-root\" [style.max-height]=\"scrollHeight\">\n <ul class=\"p-tree-root-children\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode\n *ngFor=\"let node of getRootNode(); let firstChild = first; let lastChild = last; let index = index; trackBy: trackBy.bind(this)\"\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode\"\n ></p-treeNode>\n </ul>\n </div>\n </ng-container>\n </ng-container>\n\n <div class=\"p-tree-empty-message\" *ngIf=\"!loading && (getRootNode() == null || getRootNode().length === 0)\">\n <ng-container *ngIf=\"!emptyMessageTemplate && !_emptyMessageTemplate; else emptyFilter\">\n {{ emptyMessageLabel }}\n </ng-container>\n <ng-template #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate || _emptyMessageTemplate\"></ng-template>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [TreeStyle]\n})\nexport class Tree extends BaseComponent implements OnInit, AfterContentInit, OnChanges, OnDestroy, BlockableUI {\n /**\n * An array of treenodes.\n * @group Props\n */\n @Input() value: TreeNode<any> | TreeNode<any>[] | any[] | any;\n /**\n * Defines the selection mode.\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | 'checkbox' | null | undefined;\n /**\n * Loading mode display.\n * @group Props\n */\n @Input() loadingMode: 'mask' | 'icon' = 'mask';\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n @Input() selection: any;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Context menu instance.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Scope of the draggable nodes to match a droppableScope.\n * @group Props\n */\n @Input() draggableScope: any;\n /**\n * Scope of the droppable nodes to match a draggableScope.\n * @group Props\n */\n @Input() droppableScope: any;\n /**\n * Whether the nodes are draggable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) draggableNodes: boolean | undefined;\n /**\n * Whether the nodes are droppable.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) droppableNodes: boolean | undefined;\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n /**\n * Whether checkbox selections propagate to ancestor nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionUp: boolean = true;\n /**\n * Whether checkbox selections propagate to descendant nodes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) propagateSelectionDown: boolean = true;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Text to display when there is no data.\n * @group Props\n */\n @Input() emptyMessage: string = '';\n /**\n * Used to define a string that labels the tree.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Defines a string that labels the toggler icon for accessibility.\n * @group Props\n */\n @Input() togglerAriaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) validateDrop: boolean | undefined;\n /**\n * When specified, displays an input field to filter the items.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) filter: boolean | undefined;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n @Input() filterBy: string = 'label';\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterOptions: any;\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n @Input() filterPlaceholder: string | undefined;\n /**\n * Values after the tree nodes are filtered.\n * @group Props\n */\n @Input() filteredNodes: TreeNode<any>[] | undefined | null;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Height of the scrollable viewport.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * Indentation factor for spacing of the nested node when virtual scrolling is enabled.\n * @group Props\n */\n @Input({ transform: numberAttribute }) indentation: number = 1.5;\n /**\n * Custom templates of the component.\n * @group Props\n */\n @Input() _templateMap: any;\n /**\n * Function to optimize the node list rendering, default algorithm checks for object identity.\n * @group Props\n */\n @Input() trackBy: Function = (index: number, item: any) => item;\n /**\n * Highlights the node on select.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) highlightOnSelect: boolean = false;\n /**\n * Height of the node.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n _virtualNodeHeight: number | undefined;\n @Input() get virtualNodeHeight(): number | undefined {\n return this._virtualNodeHeight;\n }\n set virtualNodeHeight(val: number | undefined) {\n this._virtualNodeHeight = val;\n console.log('The virtualNodeHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * Callback to invoke on selection change.\n * @param {(TreeNode<any> | TreeNode<any>[] | null)} event - Custom selection change event.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeNode<any> | TreeNode<any>[] | null> = new EventEmitter<TreeNode<any> | TreeNode<any>[] | null>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeNodeSelectEvent} event - Node select event.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeNodeSelectEvent> = new EventEmitter<TreeNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeNodeUnSelectEvent} event - Node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeNodeUnSelectEvent> = new EventEmitter<TreeNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeNodeExpandEvent> = new EventEmitter<TreeNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeNodeCollapseEvent> = new EventEmitter<TreeNodeCollapseEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {onNodeContextMenuSelect} event - Node context menu select event.\n * @group Emits\n */\n @Output() onNodeContextMenuSelect: EventEmitter<TreeNodeContextMenuSelectEvent> = new EventEmitter<TreeNodeContextMenuSelectEvent>();\n /**\n * Callback to invoke when a node is dropped.\n * @param {TreeNodeDropEvent} event - Node drop event.\n * @group Emits\n */\n @Output() onNodeDrop: EventEmitter<TreeNodeDropEvent> = new EventEmitter<TreeNodeDropEvent>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {TreeLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TreeLazyLoadEvent> = new EventEmitter<TreeLazyLoadEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position changes.\n * @param {TreeScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n @Output() onScroll: EventEmitter<TreeScrollEvent> = new EventEmitter<TreeScrollEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.\n * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.\n * @group Emits\n */\n @Output() onScrollIndexChange: EventEmitter<TreeScrollIndexChangeEvent> = new EventEmitter<TreeScrollIndexChangeEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeFilterEvent> = new EventEmitter<TreeFilterEvent>();\n /**\n * Filter template.\n * @group Templates\n */\n @ContentChild('filter', { descendants: false }) filterTemplate: TemplateRef<any>;\n /**\n * Node template.\n * @group Templates\n */\n @ContentChild('node', { descendants: false }) nodeTemplate: TemplateRef<any> | undefined;\n /**\n * Header template.\n * @group Templates\n */\n @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n /**\n * Footer template.\n * @group Templates\n */\n @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n /**\n * Loader template.\n * @group Templates\n */\n @ContentChild('loader', { descendants: false }) loaderTemplate: TemplateRef<any> | undefined;\n /**\n * Empty message template.\n * @group Templates\n */\n @ContentChild('empty', { descendants: false }) emptyMessageTemplate: TemplateRef<any> | undefined;\n /**\n * Toggler icon template.\n * @group Templates\n */\n @ContentChild('togglericon', { descendants: false }) togglerIconTemplate: TemplateRef<any> | undefined;\n /**\n * Checkbox icon template.\n * @group Templates\n */\n @ContentChild('checkboxicon', { descendants: false }) checkboxIconTemplate: TemplateRef<any> | undefined;\n /**\n * Loading icon template.\n * @group Templates\n */\n @ContentChild('loadingicon', { descendants: false }) loadingIconTemplate: TemplateRef<any> | undefined;\n /**\n * Filter icon template.\n * @group Templates\n */\n @ContentChild('filtericon', { descendants: false }) filterIconTemplate: TemplateRef<any> | undefined;\n\n @ViewChild('filter') filterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n @ViewChild('wrapper') wrapperViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) private templates: QueryList<PrimeTemplate> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _emptyMessageTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _loaderTemplate: TemplateRef<any> | undefined;\n\n _togglerIconTemplate: TemplateRef<any> | undefined;\n\n _checkboxIconTemplate: TemplateRef<any> | undefined;\n\n _loadingIconTemplate: TemplateRef<any> | undefined;\n\n _filterIconTemplate: TemplateRef<any> | undefined;\n\n _filterTemplate: TemplateRef<any> | undefined;\n\n ngAfterContentInit() {\n if ((this.templates as QueryList<PrimeTemplate>).length) {\n this._templateMap = {};\n }\n\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'empty':\n this._emptyMessageTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n case 'togglericon':\n this._togglerIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this._checkboxIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n\n case 'filter':\n this._filterTemplate = item.template;\n break;\n\n default:\n this._templateMap[<any>item.name] = item.template;\n break;\n }\n });\n }\n\n serializedValue: Nullable<TreeNode<any>[]>;\n\n public nodeTouched: boolean | undefined | null;\n\n public dragNodeTree: Tree | undefined | null;\n\n public dragNode: TreeNode<any> | undefined | null;\n\n public dragNodeSubNodes: TreeNode<any>[] | undefined | null;\n\n public dragNodeIndex: number | undefined | null;\n\n public dragNodeScope: any;\n\n public dragHover: boolean | undefined | null;\n\n public dragStartSubscription: Subscription | undefined | null;\n\n public dragStopSubscription: Subscription | undefined | null;\n\n _componentStyle = inject(TreeStyle);\n\n constructor(@Optional() public dragDropService: TreeDragDropService) {\n super();\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.filterBy) {\n this.filterOptions = {\n filter: (value) => this._filter(value),\n reset: () => this.resetFilter()\n };\n }\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n this.updateSerializedValue();\n if (this.hasFilterActive()) {\n this._filter(this.filterViewChild.nativeElement.value);\n }\n }\n }\n\n get containerClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent: TreeNode<any> | null, nodes: TreeNode<any>[] | any, level: number, visible: boolean) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (this.serializedValue as TreeNode<any>[]).push(<TreeNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = <Element>event.target;\n if (hasClass(eventTarget, 'p-tree-toggler') || hasClass(eventTarget, 'p-tree-toggler-icon')) {\n return;\n } else if (this.selectionMode) {\n if (node.selectable === false) {\n node.style = '--p-focus-ring-color: none;';\n return;\n } else {\n node.style = '--p-focus-ring-color: var(--primary-color)';\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(<string>node.key, <TreeNode<any>[]>this.filteredNodes) as TreeNode;\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown) this.propagateDown(node, false);\n else this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.propagateSelectionDown) this.propagateDown(node, true);\n else this.selection = [...(this.selection || []), node];\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n } else {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(<TreeNode>node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = !metaKey ? [] : this.selection || [];\n this.selection = [...this.selection, node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection = null;\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = node;\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n } else {\n if (selected) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection = [...(this.selection || []), node];\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode<any>) {\n if (this.contextMenu) {\n let eventTarget = <Element>event.target;\n\n if (eventTarget.className && eventTarget.className.indexOf('p-tree-toggler') === 0) {\n return;\n } else {\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) this.selectionChange.emit(node);\n else this.selectionChange.emit([node]);\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;\n index = areNodesEqual ? 0 : -1;\n } else {\n for (let i = 0; i < this.selection.length; i++) {\n let selectedNode = this.selection[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node: TreeNode, parentNodes: TreeNode<any>[], option: any, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(<string>node.key, parentNodes) : null;\n if (_node) {\n (<any>_node)[option] = value || (<any>node)[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n hasFilterActive() {\n return this.filter && this.filterViewChild?.nativeElement?.value.length > 0;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode<any>[]): TreeNode<any> | undefined {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for (let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount == node.children.length) {\n this.selection = [...(this.selection || []), node];\n node.partialSelected = false;\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n }\n\n if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n\n if (select && index == -1) {\n this.selection = [...(this.selection || []), node];\n } else if (!select && index > -1) {\n this.selection = this.selection.filter((val: TreeNode, i: number) => i != index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode == 'checkbox';\n }\n\n isNodeLeaf(node: TreeNode): boolean {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\n if (this._templateMap) return node.type ? this._templateMap[node.type] : this._templateMap['default'];\n else return null;\n }\n\n onDragOver(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n (<any>event).dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event: DragEvent) {\n if (this.droppableNodes && (!this.value || (<any>this.value).length === 0)) {\n event.preventDefault();\n let dragNode = this.dragNode as TreeNode;\n\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = <number>this.dragNodeIndex;\n this.value = this.value || [];\n\n if (this.validateDrop) {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex,\n accept: () => {\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n });\n } else {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex\n });\n\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n }\n }\n }\n\n processTreeDrop(dragNode: TreeNode, dragNodeIndex: number) {\n (<TreeNode<any>[]>this.dragNodeSubNodes).splice(dragNodeIndex, 1);\n (this.value as TreeNode<any>[]).push(dragNode);\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n\n onDragEnter() {\n if (this.droppableNodes && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (this.droppableNodes) {\n let rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode<any> | null, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') return dropScope === dragScope;\n else if (Array.isArray(dragScope)) return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n } else if (Array.isArray(dropScope)) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n } else if (Array.isArray(dragScope)) {\n for (let s of dropScope) {\n for (let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n public _filter(value: string) {\n let filterValue = value;\n if (filterValue === '') {\n this.filteredNodes = null;\n } else {\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for (let node of <TreeNode<any>[]>this.value) {\n let copyNode = { ...node };\n let paramsWithoutNode = { searchFields, filterText, isStrictMode };\n if (\n (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\n });\n }\n\n /**\n * Resets filter.\n * @group Method\n */\n public resetFilter() {\n this.filteredNodes = null;\n\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n }\n /**\n * Scrolls to virtual index.\n * @param {number} number - Index to be scrolled.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.virtualScroll && this.scroller?.scrollToIndex(index);\n }\n /**\n * Scrolls to virtual index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n } else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n findFilteredNodes(node: TreeNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeNode, params: any) {\n let { searchFields, filterText, isStrictMode } = params;\n let matched = false;\n for (let field of searchFields) {\n let fieldValue = removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;\n }\n\n return matched;\n }\n\n getIndex(options: any, index: number) {\n const getItemOptions = options['getItemOptions'];\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n@NgModule({\n imports: [Tree, SharedModule],\n exports: [Tree, SharedModule]\n})\nexport class TreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|