Share via


Hulpmiddelen voor knopinfo

Dit artikel helpt u bij het installeren, importeren en gebruiken van hulpprogramma's voor knopinfo. Dit hulpprogramma is handig voor aanpassingen van knopinfo in Power BI-visuals.

Vereisten

Als u het pakket wilt gebruiken, hebt u het volgende nodig:

  • Node.js (we raden de nieuwste LTS-versie aan)
  • npm (de minimaal ondersteunde versie is 3.0.0)
  • De aangepaste visual die is gemaakt door PowerBI-visuals-tools

Installatie

Als u het pakket wilt installeren, moet u de volgende opdracht uitvoeren in de map met uw huidige visual:

npm install powerbi-visuals-utils-tooltiputils --save

Met deze opdracht wordt het pakket geïnstalleerd en wordt een pakket als een afhankelijkheid aan uw package.json bestand toegevoegd.

Gebruik

In de gebruikshandleiding wordt een openbare API van het pakket beschreven. U vindt een beschrijving en enkele voorbeelden voor elke openbare interface van het pakket.

Dit pakket biedt u een manier om knopinfoacties te verwerken en methoden te maken TooltipServiceWrapper . Het maakt gebruik van knopinfointerfaces - ITooltipServiceWrapper, TooltipEventArgs, . TooltipEnabledDataPoint

Het heeft specifieke methoden (handlers voor aanraakgebeurtenissen) met betrekking tot mobiele ontwikkeling: touchEndEventName, touchStartEventName, usePointerEvents.

TooltipServiceWrapper biedt de eenvoudigste manier om knopinfo te bewerken.

Deze module biedt de volgende interface en functie:

createTooltipServiceWrapper

Met deze functie maakt u een exemplaar van ITooltipServiceWrapper.

function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number,  getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;

De ITooltipService is beschikbaar in IVisualHost.

Voorbeeld:

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.
    }
}

Bekijk hier een voorbeeld van de aangepaste visual.

ITooltipServiceWrapper

In deze interface worden openbare methoden van de TooltipService beschreven.

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

Met deze methode worden knopinfo toegevoegd aan de huidige selectie.

addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;

Voorbeeld:

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.

Bekijk hier een voorbeeld van de aangepaste visual.

Bekijk hier een voorbeeld van het aanpassen van knopinfo in een aangepast Gantt-visuele element.

ITooltipServiceWrapper.hide

Met deze methode worden de knopinfo verborgen.

hide(): void;

Voorbeeld:

import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";

let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.

tooltipServiceWrapper.hide();

Interfaces

Interfaces worden gebruikt tijdens het maken van TooltipServiceWrapper en wanneer deze worden gebruikt. Ze werden hier vermeld in voorbeelden uit eerdere artikelen.

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 kunnen hulpprogramma's voor knopinfo verschillende aanraakevenementen verwerken die nuttig zijn voor mobiele ontwikkeling.

touchStartEventName

function touchStartEventName(): string

Deze methode retourneert de naam van de touch start-gebeurtenis.

touchEndEventName

function touchEndEventName(): string

Met deze methode wordt de naam van een touch-end-gebeurtenis geretourneerd.

usePointerEvents

function usePointerEvents(): boolean

Met deze methode wordt de huidige touchStart-gebeurtenis geretourneerd die is gerelateerd aan een aanwijzer of niet.