powerbi-client-react
Version:
React wrapper for powerbi-client library
63 lines (62 loc) • 2.29 kB
TypeScript
import * as React from 'react';
import { service, Embed, IQnaEmbedConfiguration, IVisualEmbedConfiguration, IReportEmbedConfiguration, IDashboardEmbedConfiguration, ITileEmbedConfiguration } from 'powerbi-client';
import { IReportCreateConfiguration, IPaginatedReportLoadConfiguration } from 'powerbi-models';
/**
* Type for event handler function of embedded entity
*/
export type EventHandler = ((event?: service.ICustomEvent<any>, embeddedEntity?: Embed) => void) | null;
/**
* Props interface for PowerBIEmbed component
*/
export interface EmbedProps {
embedConfig: IReportEmbedConfiguration | IDashboardEmbedConfiguration | ITileEmbedConfiguration | IQnaEmbedConfiguration | IVisualEmbedConfiguration | IPaginatedReportLoadConfiguration | IReportCreateConfiguration;
getEmbeddedComponent?: {
(embeddedComponent: Embed): void;
};
eventHandlers?: Map<string, EventHandler>;
cssClassName?: string;
phasedEmbedding?: boolean;
service?: service.Service;
}
export declare enum EmbedType {
Create = "create",
Report = "report",
Dashboard = "dashboard",
Tile = "tile",
Qna = "qna",
Visual = "visual"
}
/**
* Base react component to embed Power BI entities like: reports, dashboards, tiles, visual and qna containers.
*/
export declare class PowerBIEmbed extends React.Component<EmbedProps> {
private _embed?;
private powerbi;
private containerRef;
private prevEventHandlerMapString;
private get embed();
private set embed(value);
constructor(props: EmbedProps);
componentDidMount(): void;
componentDidUpdate(prevProps: EmbedProps): Promise<void>;
componentWillUnmount(): void;
render(): JSX.Element;
/**
* Embed the powerbi entity (Load for phased embedding)
*/
private embedEntity;
/**
* Sets all event handlers from the props on the embedded entity
*
* @param embed Embedded object
* @param eventHandlers Array of eventhandlers to be set on embedded entity
* @returns void
*/
private setEventHandlers;
/**
* Returns the embedded object via _getEmbed_ callback method provided in props
*
* @returns void
*/
private invokeGetEmbedCallback;
}