Narzędzia etykietki narzędzi
Ten artykuł pomoże Ci zainstalować, zaimportować i użyć narzędzi etykietki narzędzia. To narzędzie jest przydatne w przypadku dostosowań etykietek narzędzi w wizualizacjach usługi Power BI.
Wymagania wstępne
Aby użyć pakietu, potrzebne są następujące elementy:
- Node.js (zalecamy najnowszą wersję LTS)
- npm (minimalna obsługiwana wersja to 3.0.0)
- Wizualizacja niestandardowa utworzona przez
PowerBI-visuals-tools
Instalacja
Aby zainstalować pakiet, należy uruchomić następujące polecenie w katalogu z bieżącą wizualizacją:
npm install powerbi-visuals-utils-tooltiputils --save
To polecenie instaluje pakiet i dodaje pakiet jako zależność do pliku package.json
.
Użycie
W przewodniku użycia opisano publiczny interfejs API pakietu. Znajdziesz opis i kilka przykładów dla każdego publicznego interfejsu pakietu.
Ten pakiet zawiera sposób tworzenia TooltipServiceWrapper
metod i ułatwiania obsługi akcji etykietki narzędzi. Używa interfejsów etykietek narzędzi — ITooltipServiceWrapper
, TooltipEventArgs
, TooltipEnabledDataPoint
.
Ma określone metody (programy obsługi zdarzeń dotykowych) związane z programowaniem aplikacji mobilnych: touchEndEventName
, , touchStartEventName
usePointerEvents
.
TooltipServiceWrapper
zapewnia najprostszy sposób manipulowania etykietkami narzędzi.
Ten moduł zawiera następujący interfejs i funkcję:
createTooltipServiceWrapper
Ta funkcja tworzy wystąpienie klasy ITooltipServiceWrapper
.
function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number, getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;
Element ITooltipService
jest dostępny w funkcji IVisualHost.
Przykład:
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.
}
}
Zobacz przykład wizualizacji niestandardowej tutaj.
ITooltipServiceWrapper
W tym interfejsie opisano publiczne metody narzędzia 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
Ta metoda dodaje etykietki narzędzi do bieżącego zaznaczenia.
addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
Przykład:
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.
Zobacz przykład wizualizacji niestandardowej tutaj.
Zobacz przykład dostosowywania etykietki narzędzi w wizualizacji niestandardowej Gantta tutaj.
ITooltipServiceWrapper.hide
Ta metoda ukrywa etykietkę narzędzia.
hide(): void;
Przykład:
import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";
let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.
tooltipServiceWrapper.hide();
Interfaces
Interfejsy są używane podczas tworzenia narzędzia TooltipServiceWrapper i kiedy są używane. Zostały one wymienione w przykładach z poprzednich artykułów tutaj.
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
Teraz narzędzia etykietek narzędzi mogą obsługiwać kilka zdarzeń dotykowych, które są przydatne do tworzenia aplikacji mobilnych.
touchStartEventName
function touchStartEventName(): string
Ta metoda zwraca nazwę zdarzenia startowego dotyku.
touchEndEventName
function touchEndEventName(): string
Ta metoda zwraca nazwę zdarzenia touch end.
usePointerEvents
function usePointerEvents(): boolean
Ta metoda zwraca bieżące zdarzenie touchStart związane ze wskaźnikiem lub nie.