Util tipsalat
Artikel ini akan membantu Anda menginstal, mengimpor, dan menggunakan utilitas tipsalat. Util ini berguna untuk kustomisasi tipsalat dalam visual Power BI.
Prasyarat
Untuk menggunakan paket, Anda memerlukan:
- Node.js (kami menganjurkan versi LTS terbaru)
- npm (versi minimal yang didukung adalah 3.0.0)
- Visual kustom yang dibuat oleh
PowerBI-visuals-tools
Penginstalan
Untuk menginstal paket, Anda harus menjalankan perintah berikut di direktori dengan visual saat ini:
npm install powerbi-visuals-utils-tooltiputils --save
Perintah ini akan menginstal paket dan menambahkan paket sebagai dependensi ke file package.json
Anda.
Penggunaan
Panduan Penggunaan menjelaskan API publik paket. Anda akan menemukan deskripsi dan beberapa contoh untuk setiap antarmuka publik paket.
Paket ini memberi Anda cara untuk membuat TooltipServiceWrapper
metode dan untuk membantu menangani tindakan tipsalat. Ini menggunakan antarmuka tipsalat - ITooltipServiceWrapper
, TooltipEventArgs
, TooltipEnabledDataPoint
.
Ini memiliki metode khusus (penanganan peristiwa sentuh) yang terkait dengan pengembangan seluler: touchEndEventName
, touchStartEventName
, usePointerEvents
.
TooltipServiceWrapper
menyediakan cara paling sederhana untuk memanipulasi tipsalat.
Modul ini berisi antarmuka dan fungsi berikut:
createTooltipServiceWrapper
Fungsi ini membuat instans ITooltipServiceWrapper
.
function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number, getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;
ITooltipService
tersedia di IVisualHost.
Contoh:
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.
}
}
Lihat contoh visual kustom di sini.
ITooltipServiceWrapper
Antarmuka ini menjelaskan metode publik 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
Metode ini menambahkan tipsalat ke pilihan saat ini.
addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
Contoh:
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.
Lihat contoh visual kustom di sini.
Lihat contoh kustomisasi tipsalat dalam visual kustom Gantt di sini.
ITooltipServiceWrapper.hide
Metode ini menyembunyikan tipsalat.
hide(): void;
Contoh:
import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";
let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.
tooltipServiceWrapper.hide();
Interfaces
Antarmuka digunakan selama pembuatan TooltipServiceWrapper dan kapan digunakan. Mereka disebutkan dalam contoh dari artikel sebelumnya di sini.
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
Sekarang util tipsalat dapat menangani beberapa peristiwa sentuhan yang berguna untuk pengembangan seluler.
touchStartEventName
function touchStartEventName(): string
Metode ini mengembalikan nama peristiwa touch start.
touchEndEventName
function touchEndEventName(): string
Metode ini mengembalikan nama peristiwa touch end.
usePointerEvents
function usePointerEvents(): boolean
Metode ini mengembalikan peristiwa touchStart saat ini yang terkait dengan pointer atau tidak.