UNPKG

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
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=