Nástroje pro popisy
Tento článek vám pomůže s instalací, importem a používáním nástrojů pro popisy. Tento nástroj je užitečný pro přizpůsobení popisu ve vizuálech Power BI.
Požadavky
Pokud chcete balíček použít, potřebujete:
- Node.js (doporučujeme nejnovější verzi LTS)
- npm (minimální podporovaná verze je 3.0.0)
- Vlastní vizuál vytvořený pomocí
PowerBI-visuals-tools
Instalace
Pokud chcete balíček nainstalovat, měli byste v adresáři s aktuálním vizuálem spustit následující příkaz:
npm install powerbi-visuals-utils-tooltiputils --save
Tento příkaz nainstaluje balíček a přidá balíček jako závislost do souboru package.json
.
Využití
Průvodce používáním popisuje veřejné rozhraní API balíčku. Najdete popis a několik příkladů pro každé veřejné rozhraní balíčku.
Tento balíček poskytuje způsob, jak vytvořit TooltipServiceWrapper
a metody, které vám pomůžou zpracovat akce popisu. Používá rozhraní popisků - ITooltipServiceWrapper
, TooltipEventArgs
TooltipEnabledDataPoint
.
Má specifické metody (obslužné rutiny dotykových událostí) související s vývojem mobilních aplikací: touchEndEventName
, touchStartEventName
, usePointerEvents
.
TooltipServiceWrapper
poskytuje nejjednodušší způsob manipulace s popisy.
Tento modul poskytuje následující rozhraní a funkci:
createTooltipServiceWrapper
Tato funkce vytvoří instanci .ITooltipServiceWrapper
function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number, getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;
Je ITooltipService
k dispozici v IVisualHost.
Příklad:
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.
}
}
Tady najdete příklad vlastního vizuálu.
ITooltipServiceWrapper
Toto rozhraní popisuje veřejné metody 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
Tato metoda přidá popisy k aktuálnímu výběru.
addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
Příklad:
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.
Tady najdete příklad vlastního vizuálu.
Podívejte se na příklad přizpůsobení popisu ve vlastním vizuálu Ganttova diagramu.
ITooltipServiceWrapper.hide
Tato metoda skryje popis.
hide(): void;
Příklad:
import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";
let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.
tooltipServiceWrapper.hide();
Interfaces
Rozhraní se používají při vytváření TooltipServiceWrapper a při jeho použití. Byli zmíněni v příkladech z předchozích článků zde.
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
Nástroje pro popisy teď můžou zpracovávat několik dotykových událostí, které jsou užitečné pro vývoj mobilních zařízení.
touchStartEventName
function touchStartEventName(): string
Tato metoda vrátí název události zahájení dotykového ovládání.
touchEndEventName
function touchEndEventName(): string
Tato metoda vrátí název události dotykového ukončení.
usePointerEvents
function usePointerEvents(): boolean
Tato metoda vrátí aktuální událost touchStart související s ukazatelem nebo ne.