Freigeben über


QuickInfo-Hilfsprogramme

Dieser Artikel unterstützt Sie beim Installieren, Importieren und Verwenden von QuickInfo-Hilfsprogrammen (utils). Dieses Hilfsprogramm eignet sich für die Anpassung von QuickInfos in Power BI-Visuals.

Voraussetzungen

Um das Paket verwenden zu können, benötigen Sie Folgendes:

  • Node.js (aktuelle LTS-Version wird empfohlen)
  • npm (die unterstützte Mindestversion ist 3.0.0)
  • Von PowerBI-visuals-tools erstelltes benutzerdefiniertes Visual

Installation

Führen Sie den folgenden Befehl im Verzeichnis mit Ihrem aktuellen Visual aus, um das Paket zu installieren:

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

Dieser Befehl installiert das Paket und fügt Ihrer package.json-Datei ein Paket als Abhängigkeit hinzu.

Verwendung

In der folgenden Anleitung zur Verwendung wird eine öffentliche API des Pakets beschrieben. Hier finden Sie eine Beschreibung sowie Beispiele für jede öffentliche Schnittstelle des Pakets.

Mit diesem Paket können Sie TooltipServiceWrapper und Methoden zum Verarbeiten von QuickInfo-Aktionen erstellen. Es verwendet QuickInfo-Schnittstellen: ITooltipServiceWrapper, TooltipEventArgs und TooltipEnabledDataPoint.

Es verfügt über spezifische Methoden (Ereignishandler für Berührungsereignisse) für die Entwicklung für Mobilgeräte: touchEndEventName, touchStartEventName und usePointerEvents.

TooltipServiceWrapper bietet die einfachste Möglichkeit zur Bearbeitung von QuickInfos.

Dieses Modul stellt die folgende Schnittstelle und Funktion zur Verfügung:

createTooltipServiceWrapper

Diese Funktion erstellt eine Instanz von ITooltipServiceWrapper.

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

Der ITooltipService ist in IVisualHost verfügbar.

Beispiel:

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

Sehen Sie sich hier ein Beispiel für das benutzerdefinierte Visual an.

ITooltipServiceWrapper

Diese Schnittstelle beschreibt öffentliche Methoden von 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

Diese Methode fügt der aktuellen Auswahl QuickInfos hinzu.

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

Beispiel:

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.

Sehen Sie sich hier ein Beispiel für das benutzerdefinierte Visual an.

Sehen Sie sich hier ein Beispiel für die Anpassung von QuickInfos in einem benutzerdefinierten Gantt-Visual an.

ITooltipServiceWrapper.hide

Diese Methode blendet die QuickInfo aus.

hide(): void;

Beispiel:

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

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

tooltipServiceWrapper.hide();

Interfaces

Diese Schnittstellen werden während der Erstellung und Verwendung von TooltipServiceWrapper verwendet. Sie wurden auch hier in Beispielen aus vorherigen Artikel erwähnt.

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

QuickInfo-Hilfsprogramme können mehrere Berührungsereignisse zu verarbeiten, die nützlich für die Entwicklung für Mobilgeräte sind.

touchStartEventName

function touchStartEventName(): string

Diese Methode gibt einen Berührungsanfang-Ereignisnamen zurück.

touchEndEventName

function touchEndEventName(): string

Diese Methode gibt einen Berührungsende-Ereignisnamen zurück.

usePointerEvents

function usePointerEvents(): boolean

Diese Methode gibt zurück, ob sich das aktuelle touchStart-Ereignis auf einen Zeiger bezieht oder nicht.