powerbi-client-angular
Version:
Angular wrapper for powerbi-client library
75 lines • 9.96 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";
/**
* Paginated report component to embed the entity, extends the Base component
*/
export class PowerBIPaginatedReportEmbedComponent extends PowerBIEmbedComponent {
// Getter for this._embed
get embed() {
return this._embed;
}
// Setter for this._embed
set embed(newEmbedInstance) {
this._embed = newEmbedInstance;
}
constructor() {
super();
}
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 embedPaginatedReport function
this.embedPaginatedReport();
}
}
}
ngAfterViewInit() {
// Check if container exists on the UI
if (this.containerRef.nativeElement) {
// Decide to embed
this.embedPaginatedReport();
}
}
/**
* Embed the PowerBI Paginated report
*
* @returns void
*/
embedPaginatedReport() {
// Check if the HTML container is rendered and available
if (!isEmbedSetupValid(this.containerRef, this.embedConfig)) {
return;
}
// Embed paginated report
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: PowerBIPaginatedReportEmbedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PowerBIPaginatedReportEmbedComponent, selector: "powerbi-paginated-report[embedConfig]", inputs: { embedConfig: "embedConfig" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["paginatedReportContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<div class={{cssClassName}} #paginatedReportContainer></div>', isInline: true }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBIPaginatedReportEmbedComponent, decorators: [{
type: Component,
args: [{
selector: 'powerbi-paginated-report[embedConfig]',
template: '<div class={{cssClassName}} #paginatedReportContainer></div>',
}]
}], ctorParameters: () => [], propDecorators: { embedConfig: [{
type: Input
}], containerRef: [{
type: ViewChild,
args: ['paginatedReportContainer']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJiaS1wYWdpbmF0ZWQtcmVwb3J0LWVtYmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Bvd2VyYmktcGFnaW5hdGVkLXJlcG9ydC1lbWJlZC9wb3dlcmJpLXBhZ2luYXRlZC1yZXBvcnQtZW1iZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFFbEMsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXREOztHQUVHO0FBS0gsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHFCQUFxQjtJQVk3RSx5QkFBeUI7SUFDekIsSUFBWSxLQUFLO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCx5QkFBeUI7SUFDekIsSUFBWSxLQUFLLENBQUMsZ0JBQW1DO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsUUFBUTtRQUNOLDJEQUEyRDtRQUMzRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QiwyREFBMkQ7WUFDM0QsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxlQUFlLEdBQXNDLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQzdGLE1BQU0sa0JBQWtCLEdBQXNDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQy9GLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztnQkFDM0UseUVBQXlFO2dCQUN6RSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2Isc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxrQkFBa0I7WUFDbEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssb0JBQW9CO1FBQzFCLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxPQUFPO1FBQ1QsQ0FBQztRQUVELHlCQUF5QjtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRixDQUFDOytHQXBFVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQywyUkFGckMsOERBQThEOzs0RkFFN0Qsb0NBQW9DO2tCQUpoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1Q0FBdUM7b0JBQ2pELFFBQVEsRUFBRSw4REFBOEQ7aUJBQ3pFO3dEQUlVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR3lDLFlBQVk7c0JBQTFELFNBQVM7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcbi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuXHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW1iZWQgfSBmcm9tICdwb3dlcmJpLWNsaWVudCc7XHJcbmltcG9ydCB7IElQYWdpbmF0ZWRSZXBvcnRMb2FkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3Bvd2VyYmktbW9kZWxzJztcclxuaW1wb3J0IHsgUG93ZXJCSUVtYmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vcG93ZXJiaS1lbWJlZC9wb3dlcmJpLWVtYmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzRW1iZWRTZXR1cFZhbGlkIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIFBhZ2luYXRlZCByZXBvcnQgY29tcG9uZW50IHRvIGVtYmVkIHRoZSBlbnRpdHksIGV4dGVuZHMgdGhlIEJhc2UgY29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Bvd2VyYmktcGFnaW5hdGVkLXJlcG9ydFtlbWJlZENvbmZpZ10nLFxyXG4gIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz17e2Nzc0NsYXNzTmFtZX19ICNwYWdpbmF0ZWRSZXBvcnRDb250YWluZXI+PC9kaXY+JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvd2VyQklQYWdpbmF0ZWRSZXBvcnRFbWJlZENvbXBvbmVudCBleHRlbmRzIFBvd2VyQklFbWJlZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAvLyBJbnB1dCgpIHNwZWNpZnkgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgcGFzc2VkIGZyb20gcGFyZW50XHJcbiAgLy8gQ29uZmlndXJhdGlvbiBmb3IgZW1iZWRkaW5nIHRoZSBQb3dlckJJIFBhZ2luYXRlZCByZXBvcnQgKFJlcXVpcmVkKVxyXG4gIEBJbnB1dCgpIGVtYmVkQ29uZmlnITogSVBhZ2luYXRlZFJlcG9ydExvYWRDb25maWd1cmF0aW9uO1xyXG5cclxuICAvLyBSZWYgdG8gdGhlIEhUTUwgZGl2IGNvbnRhaW5lciBlbGVtZW50XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdGVkUmVwb3J0Q29udGFpbmVyJykgcHJpdmF0ZSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgLy8gRW1iZWRkZWQgZW50aXR5XHJcbiAgLy8gTm90ZTogRG8gbm90IHJlYWQgb3IgYXNzaWduIHRvIHRoaXMgbWVtYmVyIHZhcmlhYmxlIGRpcmVjdGx5LCBpbnN0ZWFkIHVzZSB0aGUgZ2V0dGVyIGFuZCBzZXR0ZXJcclxuICBwcml2YXRlIF9lbWJlZD86IEVtYmVkO1xyXG5cclxuICAvLyBHZXR0ZXIgZm9yIHRoaXMuX2VtYmVkXHJcbiAgcHJpdmF0ZSBnZXQgZW1iZWQoKTogRW1iZWQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VtYmVkO1xyXG4gIH1cclxuXHJcbiAgLy8gU2V0dGVyIGZvciB0aGlzLl9lbWJlZFxyXG4gIHByaXZhdGUgc2V0IGVtYmVkKG5ld0VtYmVkSW5zdGFuY2U6IEVtYmVkIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9lbWJlZCA9IG5ld0VtYmVkSW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIEluaXRpYWxpemUgUG93ZXJCSSBzZXJ2aWNlIGluc3RhbmNlIHZhcmlhYmxlIGZyb20gcGFyZW50XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcpIHtcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcuaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwcmV2RW1iZWRDb25maWc6IElQYWdpbmF0ZWRSZXBvcnRMb2FkQ29uZmlndXJhdGlvbiA9IGNoYW5nZXMuZW1iZWRDb25maWcucHJldmlvdXNWYWx1ZTtcclxuICAgICAgY29uc3QgY3VycmVudEVtYmVkQ29uZmlnOiBJUGFnaW5hdGVkUmVwb3J0TG9hZENvbmZpZ3VyYXRpb24gPSBjaGFuZ2VzLmVtYmVkQ29uZmlnLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHByZXZFbWJlZENvbmZpZykgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRFbWJlZENvbmZpZykpIHtcclxuICAgICAgICAvLyBJbnB1dCBmcm9tIHBhcmVudCBnZXQgdXBkYXRlZCwgdGh1cyBjYWxsIGVtYmVkUGFnaW5hdGVkUmVwb3J0IGZ1bmN0aW9uXHJcbiAgICAgICAgdGhpcy5lbWJlZFBhZ2luYXRlZFJlcG9ydCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvLyBDaGVjayBpZiBjb250YWluZXIgZXhpc3RzIG9uIHRoZSBVSVxyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgLy8gRGVjaWRlIHRvIGVtYmVkXHJcbiAgICAgIHRoaXMuZW1iZWRQYWdpbmF0ZWRSZXBvcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtYmVkIHRoZSBQb3dlckJJIFBhZ2luYXRlZCByZXBvcnRcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHZvaWRcclxuICAgKi9cclxuICBwcml2YXRlIGVtYmVkUGFnaW5hdGVkUmVwb3J0KCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIEhUTUwgY29udGFpbmVyIGlzIHJlbmRlcmVkIGFuZCBhdmFpbGFibGVcclxuICAgIGlmICghaXNFbWJlZFNldHVwVmFsaWQodGhpcy5jb250YWluZXJSZWYsIHRoaXMuZW1iZWRDb25maWcpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFbWJlZCBwYWdpbmF0ZWQgcmVwb3J0XHJcbiAgICB0aGlzLmVtYmVkID0gdGhpcy5wb3dlcmJpLmVtYmVkKHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZW1iZWRDb25maWcpO1xyXG4gIH1cclxufVxyXG4iXX0=