ngx-powerbi-glorium
Version:
TypeScript library for embedding Power BI assets (reports/dashboards/tiles) in your application. This TypeScript library is built on top of the official powerbi-client library provided by Microsoft.
122 lines • 13.8 kB
JavaScript
import { Injectable, Optional } from '@angular/core';
import { factories, service as pbiService } from 'powerbi-client';
import * as i0 from "@angular/core";
import * as i1 from "powerbi-client";
export function powerBiServiceFactory() {
return new pbiService.Service(factories.hpmFactory, factories.wpmpFactory, factories.routerFactory);
}
export class NgxPowerBiService {
constructor(service) {
this.service = service;
if (!service) {
this.powerBiCoreService = new pbiService.Service(factories.hpmFactory, factories.wpmpFactory, factories.routerFactory);
}
else {
this.powerBiCoreService = service;
}
}
/**
* Creates new report
* @param HTMLElement Parent HTML element
* @param IEmbedConfiguration Embed configuration
* @returns Embed Embedded object
*/
createReport(element, config) {
return this.powerBiCoreService.createReport(element, config);
}
/**
* Given a configuration based on an HTML element,
* if the component has already been created and attached to the element, reuses the component instance and existing iframe,
* otherwise creates a new component instance.
*
* @param HTMLElement Parent HTML element
* @param IEmbedConfiguration Embed configuration
* @returns Embed Embedded object
*/
embed(element, config) {
return this.powerBiCoreService.embed(element, config);
}
/**
* Given a configuration based on an HTML element,
* if the component has already been created and attached to the element, reuses the component instance and existing iframe,
* otherwise creates a new component instance.
* This is used for the phased embedding API, once element is loaded successfully, one can call 'render' on it.
*
* @param HTMLElement} Parent HTML element
* @param IEmbedConfiguration Embed configuration
* @returns Embed Embedded object
*/
load(element, config) {
return this.powerBiCoreService.load(element, config);
}
/**
* Adds an event handler for DOMContentLoaded, which searches the DOM for elements that have the 'powerbi-embed-url' attribute,
* and automatically attempts to embed a Power BI component based on information from other powerbi-* attributes.
*
* Note: Only runs if `config.autoEmbedOnContentLoaded` is true when the service is created.
* This handler is typically useful only for applications that are rendered on the server so that all
* required data is available when the handler is called.
*/
enableAutoEmbed() {
return this.powerBiCoreService.enableAutoEmbed();
}
/**
* Returns an instance of the component associated with the element.
*
* @param HTMLElement Parent HTML element
* @returns (Report | Tile) Embedded report/tile object
*/
get(element) {
return this.powerBiCoreService.get(element);
}
/**
* Finds an embed instance by the name or unique ID that is provided.
*
* @param string} uniqueId or name of the report/tile
* @returns (Report | Tile) Embedded report/tile object
*/
findById(uniqueId) {
return this.powerBiCoreService.find(uniqueId);
}
/**
* Given an HTML element that has a component embedded within it,
* removes the component from the list of embedded components,
* removes the association between the element and the component, and removes the iframe.
*
* @param HTMLElement Parent HTML element
* @returns void
*/
reset(element) {
return this.powerBiCoreService.reset(element);
}
/**
* handles tile events
*
* @param IEvent<any> event
*/
handleTileEvents(event) {
return this.powerBiCoreService.handleTileEvents(event);
}
/**
* API for warm starting Power BI embedded endpoints.
* Use this API to preload Power BI Embedded in the background.
*
* @param embed.IEmbedConfiguration Embed configuration
* @param HTMLElement [element=undefined]
*/
preload(config, element) {
return this.powerBiCoreService.preload(config, element);
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPowerBiService, deps: [{ token: i1.service.Service, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPowerBiService, providedIn: 'root', useFactory: powerBiServiceFactory }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPowerBiService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
useFactory: powerBiServiceFactory
}]
}], ctorParameters: () => [{ type: i1.service.Service, decorators: [{
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBvd2VyYmkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wb3dlcmJpL3NyYy9saWIvbmd4LXBvd2VyYmkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBRUwsU0FBUyxFQUdULE9BQU8sSUFBSSxVQUFVLEVBRXRCLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV4QixNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUMzQixTQUFTLENBQUMsVUFBVSxFQUNwQixTQUFTLENBQUMsV0FBVyxFQUNyQixTQUFTLENBQUMsYUFBYSxDQUN4QixDQUFDO0FBQ0osQ0FBQztBQU1ELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBZ0MsT0FBNEI7UUFBNUIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDMUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FDOUMsU0FBUyxDQUFDLFVBQVUsRUFDcEIsU0FBUyxDQUFDLFdBQVcsRUFDckIsU0FBUyxDQUFDLGFBQWEsQ0FDeEIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLE9BQW9CLEVBQUUsTUFBMkI7UUFDNUQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsT0FBb0IsRUFBRSxNQUEyQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxJQUFJLENBQUMsT0FBb0IsRUFBRSxNQUEyQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBQyxPQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxPQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUNMLE1BQTJCLEVBQzNCLE9BQW9CO1FBRXBCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQztrSUFySFUsaUJBQWlCO3NJQUFqQixpQkFBaUIsY0FIaEIsTUFBTSxjQUNOLHFCQUFxQjs7NEZBRXRCLGlCQUFpQjtrQkFKN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsVUFBVSxFQUFFLHFCQUFxQjtpQkFDbEM7OzBCQUljLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRW1iZWQsXG4gIGZhY3RvcmllcyxcbiAgSUVtYmVkQ29uZmlndXJhdGlvbixcbiAgUmVwb3J0LFxuICBzZXJ2aWNlIGFzIHBiaVNlcnZpY2UsXG4gIFRpbGVcbn0gZnJvbSAncG93ZXJiaS1jbGllbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gcG93ZXJCaVNlcnZpY2VGYWN0b3J5KCkge1xuICByZXR1cm4gbmV3IHBiaVNlcnZpY2UuU2VydmljZShcbiAgICBmYWN0b3JpZXMuaHBtRmFjdG9yeSxcbiAgICBmYWN0b3JpZXMud3BtcEZhY3RvcnksXG4gICAgZmFjdG9yaWVzLnJvdXRlckZhY3RvcnlcbiAgKTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIHVzZUZhY3Rvcnk6IHBvd2VyQmlTZXJ2aWNlRmFjdG9yeVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hQb3dlckJpU2VydmljZSB7XG4gIHByaXZhdGUgcG93ZXJCaUNvcmVTZXJ2aWNlOiBwYmlTZXJ2aWNlLlNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBzZXJ2aWNlPzogcGJpU2VydmljZS5TZXJ2aWNlKSB7XG4gICAgaWYgKCFzZXJ2aWNlKSB7XG4gICAgICB0aGlzLnBvd2VyQmlDb3JlU2VydmljZSA9IG5ldyBwYmlTZXJ2aWNlLlNlcnZpY2UoXG4gICAgICAgIGZhY3Rvcmllcy5ocG1GYWN0b3J5LFxuICAgICAgICBmYWN0b3JpZXMud3BtcEZhY3RvcnksXG4gICAgICAgIGZhY3Rvcmllcy5yb3V0ZXJGYWN0b3J5XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvd2VyQmlDb3JlU2VydmljZSA9IHNlcnZpY2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbmV3IHJlcG9ydFxuICAgKiBAcGFyYW0gSFRNTEVsZW1lbnQgUGFyZW50IEhUTUwgZWxlbWVudFxuICAgKiBAcGFyYW0gSUVtYmVkQ29uZmlndXJhdGlvbiBFbWJlZCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIEVtYmVkIEVtYmVkZGVkIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlUmVwb3J0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb25maWc6IElFbWJlZENvbmZpZ3VyYXRpb24pOiBFbWJlZCB7XG4gICAgcmV0dXJuIHRoaXMucG93ZXJCaUNvcmVTZXJ2aWNlLmNyZWF0ZVJlcG9ydChlbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgY29uZmlndXJhdGlvbiBiYXNlZCBvbiBhbiBIVE1MIGVsZW1lbnQsXG4gICAqIGlmIHRoZSBjb21wb25lbnQgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkIGFuZCBhdHRhY2hlZCB0byB0aGUgZWxlbWVudCwgcmV1c2VzIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgYW5kIGV4aXN0aW5nIGlmcmFtZSxcbiAgICogb3RoZXJ3aXNlIGNyZWF0ZXMgYSBuZXcgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gSFRNTEVsZW1lbnQgUGFyZW50IEhUTUwgZWxlbWVudFxuICAgKiBAcGFyYW0gSUVtYmVkQ29uZmlndXJhdGlvbiBFbWJlZCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIEVtYmVkIEVtYmVkZGVkIG9iamVjdFxuICAgKi9cbiAgZW1iZWQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbmZpZzogSUVtYmVkQ29uZmlndXJhdGlvbik6IEVtYmVkIHtcbiAgICByZXR1cm4gdGhpcy5wb3dlckJpQ29yZVNlcnZpY2UuZW1iZWQoZWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gYW4gSFRNTCBlbGVtZW50LFxuICAgKiBpZiB0aGUgY29tcG9uZW50IGhhcyBhbHJlYWR5IGJlZW4gY3JlYXRlZCBhbmQgYXR0YWNoZWQgdG8gdGhlIGVsZW1lbnQsIHJldXNlcyB0aGUgY29tcG9uZW50IGluc3RhbmNlIGFuZCBleGlzdGluZyBpZnJhbWUsXG4gICAqIG90aGVyd2lzZSBjcmVhdGVzIGEgbmV3IGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgcGhhc2VkIGVtYmVkZGluZyBBUEksIG9uY2UgZWxlbWVudCBpcyBsb2FkZWQgc3VjY2Vzc2Z1bGx5LCBvbmUgY2FuIGNhbGwgJ3JlbmRlcicgb24gaXQuXG4gICAqXG4gICAqIEBwYXJhbSBIVE1MRWxlbWVudH0gUGFyZW50IEhUTUwgZWxlbWVudFxuICAgKiBAcGFyYW0gSUVtYmVkQ29uZmlndXJhdGlvbiBFbWJlZCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIEVtYmVkIEVtYmVkZGVkIG9iamVjdFxuICAgKi9cbiAgbG9hZChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29uZmlnOiBJRW1iZWRDb25maWd1cmF0aW9uKTogRW1iZWQge1xuICAgIHJldHVybiB0aGlzLnBvd2VyQmlDb3JlU2VydmljZS5sb2FkKGVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBldmVudCBoYW5kbGVyIGZvciBET01Db250ZW50TG9hZGVkLCB3aGljaCBzZWFyY2hlcyB0aGUgRE9NIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlICdwb3dlcmJpLWVtYmVkLXVybCcgYXR0cmlidXRlLFxuICAgKiBhbmQgYXV0b21hdGljYWxseSBhdHRlbXB0cyB0byBlbWJlZCBhIFBvd2VyIEJJIGNvbXBvbmVudCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIG90aGVyIHBvd2VyYmktKiBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBOb3RlOiBPbmx5IHJ1bnMgaWYgYGNvbmZpZy5hdXRvRW1iZWRPbkNvbnRlbnRMb2FkZWRgIGlzIHRydWUgd2hlbiB0aGUgc2VydmljZSBpcyBjcmVhdGVkLlxuICAgKiBUaGlzIGhhbmRsZXIgaXMgdHlwaWNhbGx5IHVzZWZ1bCBvbmx5IGZvciBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgcmVuZGVyZWQgb24gdGhlIHNlcnZlciBzbyB0aGF0IGFsbFxuICAgKiByZXF1aXJlZCBkYXRhIGlzIGF2YWlsYWJsZSB3aGVuIHRoZSBoYW5kbGVyIGlzIGNhbGxlZC5cbiAgICovXG4gIGVuYWJsZUF1dG9FbWJlZCgpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5wb3dlckJpQ29yZVNlcnZpY2UuZW5hYmxlQXV0b0VtYmVkKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIEhUTUxFbGVtZW50IFBhcmVudCBIVE1MIGVsZW1lbnRcbiAgICogQHJldHVybnMgKFJlcG9ydCB8IFRpbGUpIEVtYmVkZGVkIHJlcG9ydC90aWxlIG9iamVjdFxuICAgKi9cbiAgZ2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogRW1iZWQge1xuICAgIHJldHVybiB0aGlzLnBvd2VyQmlDb3JlU2VydmljZS5nZXQoZWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW4gZW1iZWQgaW5zdGFuY2UgYnkgdGhlIG5hbWUgb3IgdW5pcXVlIElEIHRoYXQgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmd9IHVuaXF1ZUlkIG9yIG5hbWUgb2YgdGhlIHJlcG9ydC90aWxlXG4gICAqIEByZXR1cm5zIChSZXBvcnQgfCBUaWxlKSBFbWJlZGRlZCByZXBvcnQvdGlsZSBvYmplY3RcbiAgICovXG4gIGZpbmRCeUlkKHVuaXF1ZUlkOiBzdHJpbmcpOiBSZXBvcnQgfCBUaWxlIHtcbiAgICByZXR1cm4gdGhpcy5wb3dlckJpQ29yZVNlcnZpY2UuZmluZCh1bmlxdWVJZCk7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYW4gSFRNTCBlbGVtZW50IHRoYXQgaGFzIGEgY29tcG9uZW50IGVtYmVkZGVkIHdpdGhpbiBpdCxcbiAgICogcmVtb3ZlcyB0aGUgY29tcG9uZW50IGZyb20gdGhlIGxpc3Qgb2YgZW1iZWRkZWQgY29tcG9uZW50cyxcbiAgICogcmVtb3ZlcyB0aGUgYXNzb2NpYXRpb24gYmV0d2VlbiB0aGUgZWxlbWVudCBhbmQgdGhlIGNvbXBvbmVudCwgYW5kIHJlbW92ZXMgdGhlIGlmcmFtZS5cbiAgICpcbiAgICogQHBhcmFtIEhUTUxFbGVtZW50IFBhcmVudCBIVE1MIGVsZW1lbnRcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgcmVzZXQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5wb3dlckJpQ29yZVNlcnZpY2UucmVzZXQoZWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogaGFuZGxlcyB0aWxlIGV2ZW50c1xuICAgKlxuICAgKiBAcGFyYW0gSUV2ZW50PGFueT4gZXZlbnRcbiAgICovXG4gIGhhbmRsZVRpbGVFdmVudHMoZXZlbnQ6IHBiaVNlcnZpY2UuSUV2ZW50PGFueT4pOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5wb3dlckJpQ29yZVNlcnZpY2UuaGFuZGxlVGlsZUV2ZW50cyhldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQVBJIGZvciB3YXJtIHN0YXJ0aW5nIFBvd2VyIEJJIGVtYmVkZGVkIGVuZHBvaW50cy5cbiAgICogVXNlIHRoaXMgQVBJIHRvIHByZWxvYWQgUG93ZXIgQkkgRW1iZWRkZWQgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqXG4gICAqIEBwYXJhbSBlbWJlZC5JRW1iZWRDb25maWd1cmF0aW9uIEVtYmVkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIEhUTUxFbGVtZW50IFtlbGVtZW50PXVuZGVmaW5lZF1cbiAgICovXG4gIHByZWxvYWQoXG4gICAgY29uZmlnOiBJRW1iZWRDb25maWd1cmF0aW9uLFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICk6IEhUTUxJRnJhbWVFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5wb3dlckJpQ29yZVNlcnZpY2UucHJlbG9hZChjb25maWcsIGVsZW1lbnQpO1xuICB9XG59XG4iXX0=