Подсказки дляutils
Эта статья поможет вам установить, импортировать и использовать подсказки. Это полезно для настройки подсказки в визуальных элементах 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, связанное с указателем или нет.