powerbi-client-angular
Version:
Angular wrapper for powerbi-client library
86 lines • 11.3 kB
JavaScript
// 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";
/**
* Create report component to embed the entity, extends the Base component
*/
export class PowerBICreateReportEmbedComponent 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
getCreateObject() {
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 embedCreateReport function
this.embedCreateReport();
}
}
// Set event handlers if available
if (this.eventHandlers && this.embed) {
super.setEventHandlers(this.embed, this.eventHandlers);
}
}
ngAfterViewInit() {
// Decide to embed
this.embedCreateReport();
// Set event handlers if available
if (this.eventHandlers && this.embed) {
super.setEventHandlers(this.embed, this.eventHandlers);
}
}
/**
* Embed the PowerBI Create report
*
* @returns void
*/
embedCreateReport() {
// Check if the HTML container is rendered and available
if (!isEmbedSetupValid(this.containerRef, this.embedConfig)) {
return;
}
// Embed create report
this.embed = this.powerbi.createReport(this.containerRef.nativeElement, this.embedConfig);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBICreateReportEmbedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PowerBICreateReportEmbedComponent, selector: "powerbi-create-report[embedConfig]", inputs: { embedConfig: "embedConfig", eventHandlers: "eventHandlers" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["createReportContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<div class={{cssClassName}} #createReportContainer></div>', isInline: true }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBICreateReportEmbedComponent, decorators: [{
type: Component,
args: [{
selector: 'powerbi-create-report[embedConfig]',
template: '<div class={{cssClassName}} #createReportContainer></div>',
}]
}], ctorParameters: () => [], propDecorators: { embedConfig: [{
type: Input
}], eventHandlers: [{
type: Input
}], containerRef: [{
type: ViewChild,
args: ['createReportContainer']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJiaS1jcmVhdGUtcmVwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Bvd2VyYmktY3JlYXRlLXJlcG9ydC9wb3dlcmJpLWNyZWF0ZS1yZXBvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFFbEMsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJekgsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV0RDs7R0FFRztBQUtILE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxxQkFBcUI7SUFjMUUseUJBQXlCO0lBQ3pCLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQVksS0FBSyxDQUFDLGdCQUFtQztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELDJDQUEyQztJQUNwQyxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVE7UUFDYiwyREFBMkQ7UUFDM0QsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEIsMkRBQTJEO1lBQzNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUN4QyxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sZUFBZSxHQUErQixPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUN0RixNQUFNLGtCQUFrQixHQUErQixPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztZQUN4RixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLHNFQUFzRTtnQkFDdEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFTSxlQUFlO1FBQ3BCLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssaUJBQWlCO1FBQ3ZCLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxPQUFPO1FBQ1QsQ0FBQztRQUVELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RixDQUFDOytHQWxGVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyxxVEFGbEMsMkRBQTJEOzs0RkFFMUQsaUNBQWlDO2tCQUo3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFFBQVEsRUFBRSwyREFBMkQ7aUJBQ3RFO3dEQUdVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHc0MsWUFBWTtzQkFBdkQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG5cclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbWJlZCwgQ3JlYXRlIH0gZnJvbSAncG93ZXJiaS1jbGllbnQnO1xyXG5pbXBvcnQgeyBJUmVwb3J0Q3JlYXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJ3Bvd2VyYmktbW9kZWxzJztcclxuXHJcbmltcG9ydCB7IEV2ZW50SGFuZGxlciwgUG93ZXJCSUVtYmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vcG93ZXJiaS1lbWJlZC9wb3dlcmJpLWVtYmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzRW1iZWRTZXR1cFZhbGlkIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSByZXBvcnQgY29tcG9uZW50IHRvIGVtYmVkIHRoZSBlbnRpdHksIGV4dGVuZHMgdGhlIEJhc2UgY29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Bvd2VyYmktY3JlYXRlLXJlcG9ydFtlbWJlZENvbmZpZ10nLFxyXG4gIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz17e2Nzc0NsYXNzTmFtZX19ICNjcmVhdGVSZXBvcnRDb250YWluZXI+PC9kaXY+JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvd2VyQklDcmVhdGVSZXBvcnRFbWJlZENvbXBvbmVudCBleHRlbmRzIFBvd2VyQklFbWJlZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAvLyBDb25maWd1cmF0aW9uIGZvciBlbWJlZGRpbmcgdGhlIFBvd2VyQkkgQ3JlYXRlIHJlcG9ydCAoUmVxdWlyZWQpXHJcbiAgQElucHV0KCkgZW1iZWRDb25maWchOiBJUmVwb3J0Q3JlYXRlQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgLy8gTWFwIG9mIGV2ZW50IG5hbWUgYW5kIGhhbmRsZXIgbWV0aG9kcyBwYWlycyB0byBiZSB0cmlnZ2VyZWQgb24gdGhlIGV2ZW50IChPcHRpb25hbClcclxuICBASW5wdXQoKSBldmVudEhhbmRsZXJzPzogTWFwPHN0cmluZywgRXZlbnRIYW5kbGVyIHwgbnVsbD47XHJcblxyXG4gIC8vIFJlZiB0byB0aGUgSFRNTCBkaXYgY29udGFpbmVyIGVsZW1lbnRcclxuICBAVmlld0NoaWxkKCdjcmVhdGVSZXBvcnRDb250YWluZXInKSBwcml2YXRlIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAvLyBFbWJlZGRlZCBlbnRpdHlcclxuICAvLyBOb3RlOiBEbyBub3QgcmVhZCBvciBhc3NpZ24gdG8gdGhpcyBtZW1iZXIgdmFyaWFibGUgZGlyZWN0bHksIGluc3RlYWQgdXNlIHRoZSBnZXR0ZXIgYW5kIHNldHRlclxyXG4gIHByaXZhdGUgX2VtYmVkPzogRW1iZWQ7XHJcblxyXG4gIC8vIEdldHRlciBmb3IgdGhpcy5fZW1iZWRcclxuICBwcml2YXRlIGdldCBlbWJlZCgpOiBFbWJlZCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1iZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBTZXR0ZXIgZm9yIHRoaXMuX2VtYmVkXHJcbiAgcHJpdmF0ZSBzZXQgZW1iZWQobmV3RW1iZWRJbnN0YW5jZTogRW1iZWQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2VtYmVkID0gbmV3RW1iZWRJbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgZW1iZWQgb2JqZWN0IHRvIGNhbGxpbmcgZnVuY3Rpb25cclxuICBwdWJsaWMgZ2V0Q3JlYXRlT2JqZWN0KCk6IENyZWF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1iZWQgYXMgQ3JlYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gSW5pdGlhbGl6ZSBQb3dlckJJIHNlcnZpY2UgaW5zdGFuY2UgdmFyaWFibGUgZnJvbSBwYXJlbnRcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcpIHtcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcuaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwcmV2RW1iZWRDb25maWc6IElSZXBvcnRDcmVhdGVDb25maWd1cmF0aW9uID0gY2hhbmdlcy5lbWJlZENvbmZpZy5wcmV2aW91c1ZhbHVlO1xyXG4gICAgICBjb25zdCBjdXJyZW50RW1iZWRDb25maWc6IElSZXBvcnRDcmVhdGVDb25maWd1cmF0aW9uID0gY2hhbmdlcy5lbWJlZENvbmZpZy5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShwcmV2RW1iZWRDb25maWcpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50RW1iZWRDb25maWcpKSB7XHJcbiAgICAgICAgLy8gSW5wdXQgZnJvbSBwYXJlbnQgZ2V0IHVwZGF0ZWQsIHRodXMgY2FsbCBlbWJlZENyZWF0ZVJlcG9ydCBmdW5jdGlvblxyXG4gICAgICAgIHRoaXMuZW1iZWRDcmVhdGVSZXBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCBldmVudCBoYW5kbGVycyBpZiBhdmFpbGFibGVcclxuICAgIGlmICh0aGlzLmV2ZW50SGFuZGxlcnMgJiYgdGhpcy5lbWJlZCkge1xyXG4gICAgICBzdXBlci5zZXRFdmVudEhhbmRsZXJzKHRoaXMuZW1iZWQsIHRoaXMuZXZlbnRIYW5kbGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gRGVjaWRlIHRvIGVtYmVkXHJcbiAgICB0aGlzLmVtYmVkQ3JlYXRlUmVwb3J0KCk7XHJcblxyXG4gICAgLy8gU2V0IGV2ZW50IGhhbmRsZXJzIGlmIGF2YWlsYWJsZVxyXG4gICAgaWYgKHRoaXMuZXZlbnRIYW5kbGVycyAmJiB0aGlzLmVtYmVkKSB7XHJcbiAgICAgIHN1cGVyLnNldEV2ZW50SGFuZGxlcnModGhpcy5lbWJlZCwgdGhpcy5ldmVudEhhbmRsZXJzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtYmVkIHRoZSBQb3dlckJJIENyZWF0ZSByZXBvcnRcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHZvaWRcclxuICAgKi9cclxuICBwcml2YXRlIGVtYmVkQ3JlYXRlUmVwb3J0KCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIEhUTUwgY29udGFpbmVyIGlzIHJlbmRlcmVkIGFuZCBhdmFpbGFibGVcclxuICAgIGlmICghaXNFbWJlZFNldHVwVmFsaWQodGhpcy5jb250YWluZXJSZWYsIHRoaXMuZW1iZWRDb25maWcpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFbWJlZCBjcmVhdGUgcmVwb3J0XHJcbiAgICB0aGlzLmVtYmVkID0gdGhpcy5wb3dlcmJpLmNyZWF0ZVJlcG9ydCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmVtYmVkQ29uZmlnKTtcclxuICB9XHJcbn1cclxuIl19