Skip to content

Commit

Permalink
Add new emitter in Tree component: onNodeDoubleClick (#17284)
Browse files Browse the repository at this point in the history
Co-authored-by: Ewan Humbert <[email protected]>
  • Loading branch information
Xeway and Ewan Humbert authored Jan 15, 2025
1 parent d8200ce commit 3bad663
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 0 deletions.
30 changes: 30 additions & 0 deletions apps/showcase/doc/apidoc/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -34576,6 +34576,16 @@
],
"description": "Callback to invoke when a node is selected with right click."
},
{
"name": "onNodeDoubleClick",
"parameters": [
{
"name": "event",
"type": "TreeNodeDoubleClickEvent"
}
],
"description": "Callback to invoke when a node is double clicked."
},
{
"name": "onNodeDrop",
"parameters": [
Expand Down Expand Up @@ -34888,6 +34898,26 @@
}
]
},
{
"name": "TreeNodeDoubleClickEvent",
"description": "Custom node double click event.",
"props": [
{
"name": "originalEvent",
"optional": false,
"readonly": false,
"type": "Event",
"description": "Browser event"
},
{
"name": "node",
"optional": false,
"readonly": false,
"type": "TreeNode<any>",
"description": "Node instance."
}
]
},
{
"name": "TreeNodeDropEvent",
"description": "Custom node drop event.",
Expand Down
7 changes: 7 additions & 0 deletions packages/primeng/src/tree/tree.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ export interface TreeNodeCollapseEvent extends TreeNodeSelectEvent {}
* @group Events
*/
export interface TreeNodeContextMenuSelectEvent extends TreeNodeSelectEvent {}
/**
* Custom node double click event.
* @see {@link Tree.onNodeDoubleClick}
* @extends {TreeNodeSelectEvent}
* @group Events
*/
export interface TreeNodeDoubleClickEvent extends TreeNodeSelectEvent {}
/**
* Custom node drop event.
* @see {@link Tree.onNodeDrop}
Expand Down
16 changes: 16 additions & 0 deletions packages/primeng/src/tree/tree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import {
TreeLazyLoadEvent,
TreeNodeCollapseEvent,
TreeNodeContextMenuSelectEvent,
TreeNodeDoubleClickEvent,
TreeNodeDropEvent,
TreeNodeExpandEvent,
TreeNodeSelectEvent,
Expand Down Expand Up @@ -88,6 +89,7 @@ import {
[style.paddingLeft]="level * indentation + 'rem'"
(click)="onNodeClick($event)"
(contextmenu)="onNodeRightClick($event)"
(dblclick)="onNodeDblClick($event)"
(touchend)="onNodeTouchEnd()"
(drop)="onDropNode($event)"
(dragover)="onDropNodeDragOver($event)"
Expand Down Expand Up @@ -299,6 +301,10 @@ export class UITreeNode extends BaseComponent implements OnInit {
this.tree.onNodeRightClick(event, <TreeNode>this.node);
}

onNodeDblClick(event: MouseEvent) {
this.tree.onNodeDblClick(event, <TreeNode>this.node);
}

isSelected() {
return this.tree.isSelected(<TreeNode>this.node);
}
Expand Down Expand Up @@ -1033,6 +1039,12 @@ export class Tree extends BaseComponent implements OnInit, AfterContentInit, OnC
* @group Emits
*/
@Output() onNodeContextMenuSelect: EventEmitter<TreeNodeContextMenuSelectEvent> = new EventEmitter<TreeNodeContextMenuSelectEvent>();
/**
* Callback to invoke when a node is double clicked.
* @param {TreeNodeDoubleClickEvent} event - Node double click event.
* @group Emits
*/
@Output() onNodeDoubleClick: EventEmitter<TreeNodeDoubleClickEvent> = new EventEmitter<TreeNodeDoubleClickEvent>();
/**
* Callback to invoke when a node is dropped.
* @param {TreeNodeDropEvent} event - Node drop event.
Expand Down Expand Up @@ -1414,6 +1426,10 @@ export class Tree extends BaseComponent implements OnInit, AfterContentInit, OnC
}
}

onNodeDblClick(event: MouseEvent, node: TreeNode<any>) {
this.onNodeDoubleClick.emit({ originalEvent: event, node: node });
}

findIndexInSelection(node: TreeNode) {
let index: number = -1;
if (this.selectionMode && this.selection) {
Expand Down

0 comments on commit 3bad663

Please sign in to comment.