도구 설명 유틸리티
이 문서는 도구 설명 유틸리티를 설치하고, 가져오고, 사용하는 데 도움이 됩니다. 이 유틸리티는 Power BI 시각적 개체의 도구 설명 사용자 지정에 유용합니다.
필수 조건
패키지를 사용하려면 다음이 필요합니다.
- Node.js(최신 LTS 버전 권장)
- npm(지원되는 최소 버전은 3.0.0)
PowerBI-visuals-tools
로 만든 사용자 지정 시각적 개체
설치
패키지를 설치하려면 현재 시각적 개체가 있는 디렉터리에서 다음 명령을 실행해야 합니다.
npm install powerbi-visuals-utils-tooltiputils --save
이 명령은 패키지를 설치하고 package.json
파일에 대한 종속성으로 패키지를 추가합니다.
사용
사용 가이드에서는 패키지의 공용 API를 설명합니다. 패키지의 각 공용 인터페이스에 대한 설명과 몇 가지 예제를 찾을 수 있습니다.
이 패키지에서는 도구 설명 작업을 처리하는 데 도움이 되는 TooltipServiceWrapper
및 메서드를 만드는 방법을 제공합니다. 다음 도구 설명 인터페이스가 사용됩니다. ITooltipServiceWrapper
, TooltipEventArgs
, TooltipEnabledDataPoint
.
모바일 개발과 관련된 특정 메서드(터치 이벤트 처리기)도 있습니다. touchEndEventName
, touchStartEventName
, usePointerEvents
.
TooltipServiceWrapper
는 도구 설명을 조작하기 위한 가장 간단한 방법을 제공합니다.
이 모듈에서는 다음 인터페이스 및 함수를 제공합니다.
createTooltipServiceWrapper
이 함수는 ITooltipServiceWrapper
의 인스턴스를 만듭니다.
function createTooltipServiceWrapper(tooltipService: ITooltipService, rootElement: Element, handleTouchDelay?: number, getEventMethod?: () => MouseEvent): ITooltipServiceWrapper;
ITooltipService
는 IVisualHost에서 사용할 수 있습니다.
예시:
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.
}
}
여기에서 사용자 지정 시각적 개체의 예제를 참조하세요.
ITooltipServiceWrapper
이 인터페이스는 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
이 메서드는 현재 선택 항목에 도구 설명을 추가합니다.
addTooltip<T>(selection: d3.Selection<any>, getTooltipInfoDelegate: (args: TooltipEventArgs<T>) => VisualTooltipDataItem[], getDataPointIdentity?: (args: TooltipEventArgs<T>) => ISelectionId, reloadTooltipDataOnMouseMove?: boolean): void;
예시:
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.
여기에서 사용자 지정 시각적 개체의 예제를 참조하세요.
여기에서 Gantt 사용자 지정 시각적 개체의 도구 설명 사용자 지정의 예제를 참조하세요.
ITooltipServiceWrapper.hide
이 메서드는 도구 설명을 숨깁니다.
hide(): void;
예시:
import {createTooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils";
let tooltipServiceWrapper = createTooltipServiceWrapper(options.host.tooltipService, options.element); // options are from the VisualConstructorOptions.
tooltipServiceWrapper.hide();
Interfaces
인터페이스는 TooltipServiceWrapper를 만들고 사용하는 동안 사용됩니다. 여기에 있는 이전 문서의 예제에서 언급되었습니다.
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
이제 도구 설명 유틸리티는 모바일 개발에 유용한 여러 터치 이벤트를 처리할 수 있습니다.
touchStartEventName
function touchStartEventName(): string
이 메서드는 터치 시작 이벤트 이름을 반환합니다.
touchEndEventName
function touchEndEventName(): string
이 메서드는 터치 종료 이벤트 이름을 반환합니다.
usePointerEvents
function usePointerEvents(): boolean
이 메서드는 현재 touchStart 이벤트가 포인터와 관련되는지 여부를 반환합니다.