Utilidades de la información sobre herramientas
Este artículo le ayudará a instalar, importar y usar las utilidades de la información sobre herramientas. Esta utilidad es práctica para la personalización de la información sobre herramientas en objetos visuales de Power BI.
Requisitos previos
Para usar el paquete, necesita:
- Node.js (se recomienda la versión más reciente de LTS)
- npm (la versión mínima admitida es 3.0.0).
- Objeto visual personalizado creado por
PowerBI-visuals-tools
Instalación
Para instalar el paquete, debe ejecutar el comando siguiente en el directorio con el objeto visual actual:
npm install powerbi-visuals-utils-tooltiputils --save
Este comando instala el paquete y agrega un paquete como una dependencia al archivo package.json
.
Uso
La guía de uso describe una API pública del paquete. Encontrará una descripción y algunos ejemplos de cada interfaz pública del paquete.
Este paquete contiene la manera de crear TooltipServiceWrapper
y métodos para ayudar a controlar las acciones de la información sobre herramientas. Usa interfaces de información sobre herramientas: ITooltipServiceWrapper
, TooltipEventArgs
, TooltipEnabledDataPoint
.
También contiene métodos específicos (controladores de eventos táctiles) relacionados con el desarrollo para dispositivos móviles: touchEndEventName
, touchStartEventName
, usePointerEvents
.
TooltipServiceWrapper
proporciona la manera más sencilla de manipular la información sobre herramientas.
Este módulo proporciona la siguiente interfaz y función:
createTooltipServiceWrapper
Esta función crea una instancia de ITooltipServiceWrapper
.
function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number, getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;
ITooltipService
está disponible en IVisualHost.
Ejemplo:
import { createTooltipServiceWrapper } from "powerbi-visuals-utils-tooltiputils";
export class YourVisual implements IVisual {
// implementation of IVisual.
constructor(options: VisualConstructorOptions) {
createTooltipServiceWrapper(
options.host.tooltipService,
options.element);
// returns: an instance of ITooltipServiceWrapper.
}
}
Vea un ejemplo del objeto visual personalizado aquí.
ITooltipServiceWrapper
Esta interfaz describe los métodos públicos de TooltipService.
interface ITooltipServiceWrapper {
addTooltip<T>(selection: d3.Selection<any, any, any, any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => powerbi.extensibility.VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => powerbi.visuals.ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
hide(): void;
}
ITooltipServiceWrapper.addTooltip
Este método agrega información sobre herramientas a la selección actual.
addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
Ejemplo:
import { createTooltipServiceWrapper, TooltipEventArgs, ITooltipServiceWrapper, TooltipEnabledDataPoint } from "powerbi-visuals-utils-tooltiputils";
let bodyElement = d3.select("body");
let element = bodyElement
.append("div")
.style({
"background-color": "green",
"width": "150px",
"height": "150px"
})
.classed("visual", true)
.data([{
tooltipInfo: [{
displayName: "Power BI",
value: 2016
}]
}]);
let tooltipServiceWrapper: ITooltipServiceWrapper = createTooltipServiceWrapper(tooltipService, bodyElement.get(0)); // tooltipService is from the IVisualHost.
tooltipServiceWrapper.addTooltip<TooltipEnabledDataPoint>(element, (eventArgs: TooltipEventArgs<TooltipEnabledDataPoint>) => {
return eventArgs.data.tooltipInfo;
});
// You will see a tooltip if you mouseover the element.
Vea un ejemplo del objeto visual personalizado aquí.
Vea un ejemplo de personalización de información sobre herramientas en un objeto visual personalizado de Gantt aquí.
ITooltipServiceWrapper.hide
Este método oculta la información sobre herramientas.
hide(): void;
Ejemplo:
import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";
let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.
tooltipServiceWrapper.hide();
Interfaces
Interfaces que se usan durante la creación de TooltipServiceWrapper y cuándo se usan. También se han mencionado en ejemplos del tema anterior aquí.
TooltipEventArgs
interface TooltipEventArgs<TData> {
data: TData;
coordinates: number[];
elementCoordinates: number[];
context: HTMLElement;
isTouchEvent: boolean;
}
TooltipEnabledDataPoint
interface TooltipEnabledDataPoint {
tooltipInfo?: powerbi.extensibility.VisualTooltipDataItem[];
}
TooltipServiceWrapperOptions
interface TooltipServiceWrapperOptions {
tooltipService: ITooltipService;
rootElement: Element;
handleTouchDelay: number;
Touch events
Ahora, las utilidades de información sobre herramientas pueden controlar varios eventos táctiles útiles para el desarrollo para dispositivos móviles.
touchStartEventName
function touchStartEventName(): string
Este método devuelve el nombre de evento de inicio táctil.
touchEndEventName
function touchEndEventName(): string
Este método devuelve el nombre de evento de inicio táctil.
usePointerEvents
function usePointerEvents(): boolean
Este método devuelve, o no, el evento touchStart actual relacionado con el puntero.