UNPKG

powerbi-client-angular

Version:
92 lines 12 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { Component, Input, ViewChild } from '@angular/core'; import { PowerBIEmbedComponent } from '../powerbi-embed/powerbi-embed.component'; import { isEmbedSetupValid } from '../../utils/utils'; import * as i0 from "@angular/core"; /** * Visual component to embed the visual, extends Base component */ export class PowerBIVisualEmbedComponent extends PowerBIEmbedComponent { // Getter for this._embed get embed() { return this._embed; } // Setter for this._embed set embed(newEmbedInstance) { this._embed = newEmbedInstance; } constructor() { super(); } // Returns embed object to calling function getVisual() { return this._embed; } ngOnInit() { // Initialize PowerBI service instance variable from parent super.ngOnInit(); } ngOnChanges(changes) { if (changes.embedConfig) { // Check if the function is being called for the first time if (changes.embedConfig.isFirstChange()) { return; } const prevEmbedConfig = changes.embedConfig.previousValue; const currentEmbedConfig = changes.embedConfig.currentValue; if (JSON.stringify(prevEmbedConfig) !== JSON.stringify(currentEmbedConfig)) { // Input from parent get updated, thus call embedVisual function this.embedVisual(); } } // Set event handlers if available if (this.eventHandlers && this.embed) { super.setEventHandlers(this.embed, this.eventHandlers); } } ngAfterViewInit() { // Check if container exists on the UI if (this.containerRef.nativeElement) { // Decide to embed or bootstrap if (this.embedConfig.accessToken && this.embedConfig.embedUrl) { this.embedVisual(); } else { this.embed = this.powerbi.bootstrap(this.containerRef.nativeElement, this.embedConfig); } } // Set event handlers if available if (this.eventHandlers && this.embed) { super.setEventHandlers(this.embed, this.eventHandlers); } } /** * Embed the PowerBI Visual * * @returns void */ embedVisual() { if (!isEmbedSetupValid(this.containerRef, this.embedConfig)) { return; } this.embed = this.powerbi.embed(this.containerRef.nativeElement, this.embedConfig); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBIVisualEmbedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PowerBIVisualEmbedComponent, selector: "powerbi-visual[embedConfig]", inputs: { embedConfig: "embedConfig", eventHandlers: "eventHandlers" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["visualContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<div class={{cssClassName}} #visualContainer></div>', isInline: true }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBIVisualEmbedComponent, decorators: [{ type: Component, args: [{ selector: 'powerbi-visual[embedConfig]', template: '<div class={{cssClassName}} #visualContainer></div>', }] }], ctorParameters: () => [], propDecorators: { embedConfig: [{ type: Input }], eventHandlers: [{ type: Input }], containerRef: [{ type: ViewChild, args: ['visualContainer'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJiaS12aXN1YWwtZW1iZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcG93ZXJiaS12aXN1YWwtZW1iZWQvcG93ZXJiaS12aXN1YWwtZW1iZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFFbEMsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekgsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV0RDs7R0FFRztBQUtILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxxQkFBcUI7SUFlcEUseUJBQXlCO0lBQ3pCLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQVksS0FBSyxDQUFDLGdCQUFtQztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUTtRQUNOLDJEQUEyRDtRQUMzRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QiwyREFBMkQ7WUFDM0QsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxlQUFlLEdBQThCLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ3JGLE1BQU0sa0JBQWtCLEdBQThCLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQ3ZGLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztnQkFDM0UsZ0VBQWdFO2dCQUNoRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2Isc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQywrQkFBK0I7WUFDL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7UUFDSCxDQUFDO1FBRUQsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVc7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRixDQUFDOytHQXhGVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix3U0FGNUIscURBQXFEOzs0RkFFcEQsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFFBQVEsRUFBRSxxREFBcUQ7aUJBQ2hFO3dEQUlVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHZ0MsWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG5cclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbWJlZCwgSVZpc3VhbEVtYmVkQ29uZmlndXJhdGlvbiwgVmlzdWFsIH0gZnJvbSAncG93ZXJiaS1jbGllbnQnO1xyXG5pbXBvcnQgeyBFdmVudEhhbmRsZXIsIFBvd2VyQklFbWJlZENvbXBvbmVudCB9IGZyb20gJy4uL3Bvd2VyYmktZW1iZWQvcG93ZXJiaS1lbWJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBpc0VtYmVkU2V0dXBWYWxpZCB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBWaXN1YWwgY29tcG9uZW50IHRvIGVtYmVkIHRoZSB2aXN1YWwsIGV4dGVuZHMgQmFzZSBjb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncG93ZXJiaS12aXN1YWxbZW1iZWRDb25maWddJyxcclxuICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9e3tjc3NDbGFzc05hbWV9fSAjdmlzdWFsQ29udGFpbmVyPjwvZGl2PicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3dlckJJVmlzdWFsRW1iZWRDb21wb25lbnQgZXh0ZW5kcyBQb3dlckJJRW1iZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgLy8gSW5wdXQoKSBzcGVjaWZ5IHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIHBhc3NlZCBmcm9tIHBhcmVudFxyXG4gIC8vIENvbmZpZ3VyYXRpb24gZm9yIGVtYmVkZGluZyB0aGUgUG93ZXJCSSBWaXN1YWwgKFJlcXVpcmVkKVxyXG4gIEBJbnB1dCgpIGVtYmVkQ29uZmlnITogSVZpc3VhbEVtYmVkQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgLy8gTWFwIG9mIGV2ZW50IG5hbWUgYW5kIGhhbmRsZXIgbWV0aG9kcyBwYWlycyB0byBiZSB0cmlnZ2VyZWQgb24gdGhlIGV2ZW50IChPcHRpb25hbClcclxuICBASW5wdXQoKSBldmVudEhhbmRsZXJzPzogTWFwPHN0cmluZywgRXZlbnRIYW5kbGVyIHwgbnVsbD47XHJcblxyXG4gIC8vIFJlZiB0byB0aGUgSFRNTCBkaXYgY29udGFpbmVyIGVsZW1lbnRcclxuICBAVmlld0NoaWxkKCd2aXN1YWxDb250YWluZXInKSBwcml2YXRlIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAvLyBFbWJlZGRlZCBlbnRpdHlcclxuICAvLyBOb3RlOiBEbyBub3QgcmVhZCBvciBhc3NpZ24gdG8gdGhpcyBtZW1iZXIgdmFyaWFibGUgZGlyZWN0bHksIGluc3RlYWQgdXNlIHRoZSBnZXR0ZXIgYW5kIHNldHRlclxyXG4gIHByaXZhdGUgX2VtYmVkPzogRW1iZWQ7XHJcblxyXG4gIC8vIEdldHRlciBmb3IgdGhpcy5fZW1iZWRcclxuICBwcml2YXRlIGdldCBlbWJlZCgpOiBFbWJlZCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1iZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBTZXR0ZXIgZm9yIHRoaXMuX2VtYmVkXHJcbiAgcHJpdmF0ZSBzZXQgZW1iZWQobmV3RW1iZWRJbnN0YW5jZTogRW1iZWQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2VtYmVkID0gbmV3RW1iZWRJbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgZW1iZWQgb2JqZWN0IHRvIGNhbGxpbmcgZnVuY3Rpb25cclxuICBnZXRWaXN1YWwoKTogVmlzdWFsIHtcclxuICAgIHJldHVybiB0aGlzLl9lbWJlZCBhcyBWaXN1YWw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIEluaXRpYWxpemUgUG93ZXJCSSBzZXJ2aWNlIGluc3RhbmNlIHZhcmlhYmxlIGZyb20gcGFyZW50XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcpIHtcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcuaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwcmV2RW1iZWRDb25maWc6IElWaXN1YWxFbWJlZENvbmZpZ3VyYXRpb24gPSBjaGFuZ2VzLmVtYmVkQ29uZmlnLnByZXZpb3VzVmFsdWU7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRFbWJlZENvbmZpZzogSVZpc3VhbEVtYmVkQ29uZmlndXJhdGlvbiA9IGNoYW5nZXMuZW1iZWRDb25maWcuY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldkVtYmVkQ29uZmlnKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEVtYmVkQ29uZmlnKSkge1xyXG4gICAgICAgIC8vIElucHV0IGZyb20gcGFyZW50IGdldCB1cGRhdGVkLCB0aHVzIGNhbGwgZW1iZWRWaXN1YWwgZnVuY3Rpb25cclxuICAgICAgICB0aGlzLmVtYmVkVmlzdWFsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgZXZlbnQgaGFuZGxlcnMgaWYgYXZhaWxhYmxlXHJcbiAgICBpZiAodGhpcy5ldmVudEhhbmRsZXJzICYmIHRoaXMuZW1iZWQpIHtcclxuICAgICAgc3VwZXIuc2V0RXZlbnRIYW5kbGVycyh0aGlzLmVtYmVkLCB0aGlzLmV2ZW50SGFuZGxlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgY29udGFpbmVyIGV4aXN0cyBvbiB0aGUgVUlcclxuICAgIGlmICh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIC8vIERlY2lkZSB0byBlbWJlZCBvciBib290c3RyYXBcclxuICAgICAgaWYgKHRoaXMuZW1iZWRDb25maWcuYWNjZXNzVG9rZW4gJiYgdGhpcy5lbWJlZENvbmZpZy5lbWJlZFVybCkge1xyXG4gICAgICAgIHRoaXMuZW1iZWRWaXN1YWwoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmVtYmVkID0gdGhpcy5wb3dlcmJpLmJvb3RzdHJhcCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmVtYmVkQ29uZmlnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCBldmVudCBoYW5kbGVycyBpZiBhdmFpbGFibGVcclxuICAgIGlmICh0aGlzLmV2ZW50SGFuZGxlcnMgJiYgdGhpcy5lbWJlZCkge1xyXG4gICAgICBzdXBlci5zZXRFdmVudEhhbmRsZXJzKHRoaXMuZW1iZWQsIHRoaXMuZXZlbnRIYW5kbGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWJlZCB0aGUgUG93ZXJCSSBWaXN1YWxcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHZvaWRcclxuICAgKi9cclxuICBwcml2YXRlIGVtYmVkVmlzdWFsKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc0VtYmVkU2V0dXBWYWxpZCh0aGlzLmNvbnRhaW5lclJlZiwgdGhpcy5lbWJlZENvbmZpZykpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZW1iZWQgPSB0aGlzLnBvd2VyYmkuZW1iZWQodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5lbWJlZENvbmZpZyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==