powerbi-client-angular
Version:
Angular wrapper for powerbi-client library
93 lines • 12.1 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";
/**
* Qna component to embed the Qna visual, extends Base component
*/
export class PowerBIQnaEmbedComponent 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
getQna() {
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 embedQnaVisual function
this.embedQnaVisual();
}
}
// 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.embedQnaVisual();
}
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 QnA Visual
*
* @returns void
*/
embedQnaVisual() {
// Check if the HTML container is rendered and available
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: PowerBIQnaEmbedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PowerBIQnaEmbedComponent, selector: "powerbi-qna[embedConfig]", inputs: { embedConfig: "embedConfig", eventHandlers: "eventHandlers" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["qnaContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<div class={{cssClassName}} #qnaContainer></div>', isInline: true }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBIQnaEmbedComponent, decorators: [{
type: Component,
args: [{
selector: 'powerbi-qna[embedConfig]',
template: '<div class={{cssClassName}} #qnaContainer></div>',
}]
}], ctorParameters: () => [], propDecorators: { embedConfig: [{
type: Input
}], eventHandlers: [{
type: Input
}], containerRef: [{
type: ViewChild,
args: ['qnaContainer']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJiaS1xbmEtZW1iZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcG93ZXJiaS1xbmEtZW1iZWQvcG93ZXJiaS1xbmEtZW1iZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFFbEMsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekgsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV0RDs7R0FFRztBQUtILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBcUI7SUFlakUseUJBQXlCO0lBQ3pCLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQVksS0FBSyxDQUFDLGdCQUFtQztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRO1FBQ04sMkRBQTJEO1FBQzNELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLDJEQUEyRDtZQUMzRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLGVBQWUsR0FBMkIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDbEYsTUFBTSxrQkFBa0IsR0FBMkIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7WUFDcEYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUMzRSxtRUFBbUU7Z0JBQ25FLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3BDLCtCQUErQjtZQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzlELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekYsQ0FBQztRQUNILENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssY0FBYztRQUNwQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRixDQUFDOytHQXpGVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixrU0FGekIsa0RBQWtEOzs0RkFFakQsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSxrREFBa0Q7aUJBQzdEO3dEQUlVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHNkIsWUFBWTtzQkFBOUMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcbi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuXHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW1iZWQsIElRbmFFbWJlZENvbmZpZ3VyYXRpb24sIFFuYSB9IGZyb20gJ3Bvd2VyYmktY2xpZW50JztcclxuaW1wb3J0IHsgRXZlbnRIYW5kbGVyLCBQb3dlckJJRW1iZWRDb21wb25lbnQgfSBmcm9tICcuLi9wb3dlcmJpLWVtYmVkL3Bvd2VyYmktZW1iZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgaXNFbWJlZFNldHVwVmFsaWQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XHJcblxyXG4vKipcclxuICogUW5hIGNvbXBvbmVudCB0byBlbWJlZCB0aGUgUW5hIHZpc3VhbCwgZXh0ZW5kcyBCYXNlIGNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwb3dlcmJpLXFuYVtlbWJlZENvbmZpZ10nLFxyXG4gIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz17e2Nzc0NsYXNzTmFtZX19ICNxbmFDb250YWluZXI+PC9kaXY+JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvd2VyQklRbmFFbWJlZENvbXBvbmVudCBleHRlbmRzIFBvd2VyQklFbWJlZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAvLyBJbnB1dCgpIHNwZWNpZnkgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgcGFzc2VkIGZyb20gcGFyZW50XHJcbiAgLy8gQ29uZmlndXJhdGlvbiBmb3IgZW1iZWRkaW5nIHRoZSBQb3dlckJJIFFuYSB2aXN1YWwgKFJlcXVpcmVkKVxyXG4gIEBJbnB1dCgpIGVtYmVkQ29uZmlnITogSVFuYUVtYmVkQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgLy8gTWFwIG9mIGV2ZW50IG5hbWUgYW5kIGhhbmRsZXIgbWV0aG9kcyBwYWlycyB0byBiZSB0cmlnZ2VyZWQgb24gdGhlIGV2ZW50IChPcHRpb25hbClcclxuICBASW5wdXQoKSBldmVudEhhbmRsZXJzPzogTWFwPHN0cmluZywgRXZlbnRIYW5kbGVyIHwgbnVsbD47XHJcblxyXG4gIC8vIFJlZiB0byB0aGUgSFRNTCBkaXYgY29udGFpbmVyIGVsZW1lbnRcclxuICBAVmlld0NoaWxkKCdxbmFDb250YWluZXInKSBwcml2YXRlIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAvLyBFbWJlZGRlZCBlbnRpdHlcclxuICAvLyBOb3RlOiBEbyBub3QgcmVhZCBvciBhc3NpZ24gdG8gdGhpcyBtZW1iZXIgdmFyaWFibGUgZGlyZWN0bHksIGluc3RlYWQgdXNlIHRoZSBnZXR0ZXIgYW5kIHNldHRlclxyXG4gIHByaXZhdGUgX2VtYmVkPzogRW1iZWQ7XHJcblxyXG4gIC8vIEdldHRlciBmb3IgdGhpcy5fZW1iZWRcclxuICBwcml2YXRlIGdldCBlbWJlZCgpOiBFbWJlZCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1iZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBTZXR0ZXIgZm9yIHRoaXMuX2VtYmVkXHJcbiAgcHJpdmF0ZSBzZXQgZW1iZWQobmV3RW1iZWRJbnN0YW5jZTogRW1iZWQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2VtYmVkID0gbmV3RW1iZWRJbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgZW1iZWQgb2JqZWN0IHRvIGNhbGxpbmcgZnVuY3Rpb25cclxuICBnZXRRbmEoKTogUW5hIHtcclxuICAgIHJldHVybiB0aGlzLl9lbWJlZCBhcyBRbmE7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIEluaXRpYWxpemUgUG93ZXJCSSBzZXJ2aWNlIGluc3RhbmNlIHZhcmlhYmxlIGZyb20gcGFyZW50XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcpIHtcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgaWYgKGNoYW5nZXMuZW1iZWRDb25maWcuaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwcmV2RW1iZWRDb25maWc6IElRbmFFbWJlZENvbmZpZ3VyYXRpb24gPSBjaGFuZ2VzLmVtYmVkQ29uZmlnLnByZXZpb3VzVmFsdWU7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRFbWJlZENvbmZpZzogSVFuYUVtYmVkQ29uZmlndXJhdGlvbiA9IGNoYW5nZXMuZW1iZWRDb25maWcuY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldkVtYmVkQ29uZmlnKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEVtYmVkQ29uZmlnKSkge1xyXG4gICAgICAgIC8vIElucHV0IGZyb20gcGFyZW50IGdldCB1cGRhdGVkLCB0aHVzIGNhbGwgZW1iZWRRbmFWaXN1YWwgZnVuY3Rpb25cclxuICAgICAgICB0aGlzLmVtYmVkUW5hVmlzdWFsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgZXZlbnQgaGFuZGxlcnMgaWYgYXZhaWxhYmxlXHJcbiAgICBpZiAodGhpcy5ldmVudEhhbmRsZXJzICYmIHRoaXMuZW1iZWQpIHtcclxuICAgICAgc3VwZXIuc2V0RXZlbnRIYW5kbGVycyh0aGlzLmVtYmVkLCB0aGlzLmV2ZW50SGFuZGxlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgY29udGFpbmVyIGV4aXN0cyBvbiB0aGUgVUlcclxuICAgIGlmICh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIC8vIERlY2lkZSB0byBlbWJlZCBvciBib290c3RyYXBcclxuICAgICAgaWYgKHRoaXMuZW1iZWRDb25maWcuYWNjZXNzVG9rZW4gJiYgdGhpcy5lbWJlZENvbmZpZy5lbWJlZFVybCkge1xyXG4gICAgICAgIHRoaXMuZW1iZWRRbmFWaXN1YWwoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmVtYmVkID0gdGhpcy5wb3dlcmJpLmJvb3RzdHJhcCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmVtYmVkQ29uZmlnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCBldmVudCBoYW5kbGVycyBpZiBhdmFpbGFibGVcclxuICAgIGlmICh0aGlzLmV2ZW50SGFuZGxlcnMgJiYgdGhpcy5lbWJlZCkge1xyXG4gICAgICBzdXBlci5zZXRFdmVudEhhbmRsZXJzKHRoaXMuZW1iZWQsIHRoaXMuZXZlbnRIYW5kbGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWJlZCB0aGUgUG93ZXJCSSBRbkEgVmlzdWFsXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB2b2lkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbWJlZFFuYVZpc3VhbCgpOiB2b2lkIHtcclxuICAgIC8vIENoZWNrIGlmIHRoZSBIVE1MIGNvbnRhaW5lciBpcyByZW5kZXJlZCBhbmQgYXZhaWxhYmxlXHJcbiAgICBpZiAoIWlzRW1iZWRTZXR1cFZhbGlkKHRoaXMuY29udGFpbmVyUmVmLCB0aGlzLmVtYmVkQ29uZmlnKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbWJlZCA9IHRoaXMucG93ZXJiaS5lbWJlZCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmVtYmVkQ29uZmlnKTtcclxuICB9XHJcbn1cclxuIl19