Knappbeskrivningsverktyg
Den här artikeln hjälper dig att installera, importera och använda knappbeskrivningsverktyg. Det här verktyget är användbart för anpassningar av knappbeskrivningar i visuella Power BI-objekt.
Förutsättningar
Om du vill använda paketet behöver du:
- Node.js (vi rekommenderar den senaste LTS-versionen)
- npm (den lägsta versionen som stöds är 3.0.0)
- Det anpassade visuella objektet som skapats av
PowerBI-visuals-tools
Installation
Om du vill installera paketet bör du köra följande kommando i katalogen med ditt aktuella visuella objekt:
npm install powerbi-visuals-utils-tooltiputils --save
Det här kommandot installerar paketet och lägger till ett paket som ett beroende till filen package.json
.
Förbrukning
Användningsguiden beskriver ett offentligt API för paketet. Du hittar en beskrivning och några exempel för varje offentligt gränssnitt för paketet.
Det här paketet ger dig ett sätt att skapa TooltipServiceWrapper
och metoder för att hantera knappbeskrivningsåtgärder. Den använder knappbeskrivningsgränssnitt – ITooltipServiceWrapper
, TooltipEventArgs
, TooltipEnabledDataPoint
.
Den har specifika metoder (hanterare av beröringshändelser) som är relaterade till mobil utveckling: touchEndEventName
, touchStartEventName
, usePointerEvents
.
TooltipServiceWrapper
är det enklaste sättet att ändra knappbeskrivningar.
Den här modulen innehåller följande gränssnitt och funktion:
createTooltipServiceWrapper
Den här funktionen skapar en instans av ITooltipServiceWrapper
.
function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number, getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;
ITooltipService
Är tillgängligt i IVisualHost.
Exempel:
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.
}
}
Se ett exempel på det anpassade visuella objektet här.
ITooltipServiceWrapper
Det här gränssnittet beskriver offentliga metoder för 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
Den här metoden lägger till knappbeskrivningar i den aktuella markeringen.
addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
Exempel:
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.
Se ett exempel på det anpassade visuella objektet här.
Se ett exempel på anpassning av knappbeskrivningar i ett anpassat visuellt Gantt-objekt här.
ITooltipServiceWrapper.hide
Den här metoden döljer knappbeskrivningen.
hide(): void;
Exempel:
import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";
let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.
tooltipServiceWrapper.hide();
Interfaces
Gränssnitt används när TooltipServiceWrapper skapas och när det används. De nämndes i exempel från tidigare artiklar här.
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
Nu kan verktygstips hantera flera touchhändelser som är användbara för mobil utveckling.
touchStartEventName
function touchStartEventName(): string
Den här metoden returnerar ett touch start-händelsenamn.
touchEndEventName
function touchEndEventName(): string
Den här metoden returnerar ett namn på en touch end-händelse.
usePointerEvents
function usePointerEvents(): boolean
Den här metoden returnerar den aktuella touchStart-händelsen som är relaterad till en pekare eller inte.