Forum Discussion
popeadam
1 year agoNew Member
Context menu for visualisation that doesn't need it....
I have a visualisation which has no great need for a context menu other than to be consistent with other Power BI custom visuals. The visual does not use the d3 library, and I can't find a sample to copy off which also doesn't. I'm wondering how I might be able to incorporate it easily?
The current code I'm using is as follows, and it gets all a bit messy in the 'private handleContextMenu' method:
import ISelectionManager = powerbi.extensibility.ISelectionManager;
export class Visual implements IVisual {
private selectionManager: ISelectionManager;
}
constructor(options: VisualConstructorOptions) {
this.handleContextMenu();
}
private handleContextMenu() {
const mouseEvent: MouseEvent = addEventListener as MouseEvent;
const eventTarget: EventTarget = mouseEvent.target;
this.selectionManager.showContextMenu(Selection, { x: MouseEvent.clientX, y: MouseEvent.clientY });
mouseEvent.preventDefault();
}Is anyone able to provide a method which would be able to enable the default context menu of 'Show as table/copy/chat in teams'?
1 Reply
- popeadamNew Member
Managed to resolve this using the d3 library:
import {select} from "d3"; export class Visual implements IVisual { private selectionManager: ISelectionManager; constructor(options: VisualConstructorOptions) { this.selectionManager = options.host.createSelectionManager(); this.handleContextMenu(); } private handleContextMenu() { select(this.target).on("contextmenu", (event: MouseEvent) => { this.selectionManager.showContextMenu({}, { x: event.clientX, y: event.clientY, }); event.preventDefault(); }); }