UNPKG

powerbi-client-angular

Version:
71 lines 9.58 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { Component, Input } from '@angular/core'; import { factories, service } from 'powerbi-client'; import { stringifyMap, sdkType, sdkWrapperVersion } from '../../utils/utils'; import * as i0 from "@angular/core"; /** * Base component to hold common properties for all the Power BI entities */ export class PowerBIEmbedComponent { constructor() { // JSON stringify of prev event handler map this.prevEventHandlerMapString = ''; } ngOnInit() { // Initialize powerbi variable for child component if (this.service) { this.powerbi = this.service; } else { if (!PowerBIEmbedComponent._powerbi) { PowerBIEmbedComponent._powerbi = new service.Service(factories.hpmFactory, factories.wpmpFactory, factories.routerFactory); } this.powerbi = PowerBIEmbedComponent._powerbi; } this.powerbi.setSdkInfo(sdkType, sdkWrapperVersion); } /** * Sets all event handlers from the input on the embedded entity * * @param embed Embedded object * @param eventHandlerMap Array of event handlers to be set on embedded entity * @returns void */ setEventHandlers(embed, eventHandlerMap) { // Get string representation of eventHandlerMap const eventHandlerMapString = stringifyMap(eventHandlerMap); // Check if event handler map changed if (this.prevEventHandlerMapString === eventHandlerMapString) { return; } // Update prev string representation of event handler map this.prevEventHandlerMapString = eventHandlerMapString; // Apply all provided event handlers eventHandlerMap.forEach((eventHandlerMethod, eventName) => { // Removes event handler for this event embed.off(eventName); // Event handler is effectively removed for this event when eventHandlerMethod is null if (eventHandlerMethod) { // Set single event handler embed.on(eventName, (event) => { eventHandlerMethod(event, embed); }); } }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBIEmbedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PowerBIEmbedComponent, selector: "powerbi-embed", inputs: { cssClassName: "cssClassName", service: "service" }, ngImport: i0, template: '', isInline: true }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PowerBIEmbedComponent, decorators: [{ type: Component, args: [{ selector: 'powerbi-embed', template: '', }] }], propDecorators: { cssClassName: [{ type: Input }], service: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJiaS1lbWJlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wb3dlcmJpLWVtYmVkL3Bvd2VyYmktZW1iZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFFbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFTLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU83RTs7R0FFRztBQUtILE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFrQkUsMkNBQTJDO1FBQ25DLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztLQW9EeEM7SUFsREMsUUFBUTtRQUNOLGtEQUFrRDtRQUNsRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQ2xELFNBQVMsQ0FBQyxVQUFVLEVBQ3BCLFNBQVMsQ0FBQyxXQUFXLEVBQ3JCLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxnQkFBZ0IsQ0FBQyxLQUFZLEVBQUUsZUFBaUQ7UUFDeEYsK0NBQStDO1FBQy9DLE1BQU0scUJBQXFCLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVELHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdELE9BQU87UUFDVCxDQUFDO1FBRUQseURBQXlEO1FBQ3pELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQztRQUV2RCxvQ0FBb0M7UUFDcEMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ3hELHVDQUF1QztZQUN2QyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXJCLHNGQUFzRjtZQUN0RixJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3ZCLDJCQUEyQjtnQkFDM0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFnQyxFQUFRLEVBQUU7b0JBQzdELGtCQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWxFVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixtSEFGdEIsRUFBRTs7NEZBRUQscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsRUFBRTtpQkFDYjs4QkFPVSxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG4vLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW1iZWQsIGZhY3Rvcmllcywgc2VydmljZSB9IGZyb20gJ3Bvd2VyYmktY2xpZW50JztcclxuaW1wb3J0IHsgc3RyaW5naWZ5TWFwLCBzZGtUeXBlLCBzZGtXcmFwcGVyVmVyc2lvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGZvciBldmVudCBoYW5kbGVyIGZ1bmN0aW9uIG9mIGVtYmVkZGVkIGVudGl0eVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRXZlbnRIYW5kbGVyID0gKGV2ZW50Pzogc2VydmljZS5JQ3VzdG9tRXZlbnQ8YW55PiwgZW1iZWRkZWRFbnRpdHk/OiBFbWJlZCkgPT4gdm9pZCB8IG51bGw7XHJcblxyXG4vKipcclxuICogQmFzZSBjb21wb25lbnQgdG8gaG9sZCBjb21tb24gcHJvcGVydGllcyBmb3IgYWxsIHRoZSBQb3dlciBCSSBlbnRpdGllc1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwb3dlcmJpLWVtYmVkJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3dlckJJRW1iZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFBvd2VyIEJJIHNlcnZpY2UgaW5zdGFuY2UgdG8gYmUgdXNlZCBpZiB1c2VyIGRvZXNudCBwcm92aWRlIGN1c3RvbSBzZXJ2aWNlXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX3Bvd2VyYmk6IHNlcnZpY2UuU2VydmljZTtcclxuXHJcbiAgLy8gSW5wdXQoKSBzcGVjaWZ5IHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSBwYXNzZWQgZnJvbSB0aGUgcGFyZW50XHJcbiAgLy8gQ1NTIGNsYXNzIHRvIGJlIHNldCBvbiB0aGUgZW1iZWRkaW5nIGNvbnRhaW5lciAoT3B0aW9uYWwpXHJcbiAgQElucHV0KCkgY3NzQ2xhc3NOYW1lPzogc3RyaW5nO1xyXG5cclxuICAvLyBQcm92aWRlIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIG9mIFBvd2VyIEJJIHNlcnZpY2UgKE9wdGlvbmFsKVxyXG4gIEBJbnB1dCgpIHNlcnZpY2U/OiBzZXJ2aWNlLlNlcnZpY2U7XHJcblxyXG4gIC8vIFBvd2VyIEJJIHNlcnZpY2VcclxuICBwb3dlcmJpITogc2VydmljZS5TZXJ2aWNlO1xyXG5cclxuICAvLyBKU09OIHN0cmluZ2lmeSBvZiBwcmV2IGV2ZW50IGhhbmRsZXIgbWFwXHJcbiAgcHJpdmF0ZSBwcmV2RXZlbnRIYW5kbGVyTWFwU3RyaW5nID0gJyc7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gSW5pdGlhbGl6ZSBwb3dlcmJpIHZhcmlhYmxlIGZvciBjaGlsZCBjb21wb25lbnRcclxuICAgIGlmICh0aGlzLnNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5wb3dlcmJpID0gdGhpcy5zZXJ2aWNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCFQb3dlckJJRW1iZWRDb21wb25lbnQuX3Bvd2VyYmkpIHtcclxuICAgICAgICBQb3dlckJJRW1iZWRDb21wb25lbnQuX3Bvd2VyYmkgPSBuZXcgc2VydmljZS5TZXJ2aWNlKFxyXG4gICAgICAgICAgZmFjdG9yaWVzLmhwbUZhY3RvcnksXHJcbiAgICAgICAgICBmYWN0b3JpZXMud3BtcEZhY3RvcnksXHJcbiAgICAgICAgICBmYWN0b3JpZXMucm91dGVyRmFjdG9yeSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wb3dlcmJpID0gUG93ZXJCSUVtYmVkQ29tcG9uZW50Ll9wb3dlcmJpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucG93ZXJiaS5zZXRTZGtJbmZvKHNka1R5cGUsIHNka1dyYXBwZXJWZXJzaW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYWxsIGV2ZW50IGhhbmRsZXJzIGZyb20gdGhlIGlucHV0IG9uIHRoZSBlbWJlZGRlZCBlbnRpdHlcclxuICAgKlxyXG4gICAqIEBwYXJhbSBlbWJlZCBFbWJlZGRlZCBvYmplY3RcclxuICAgKiBAcGFyYW0gZXZlbnRIYW5kbGVyTWFwIEFycmF5IG9mIGV2ZW50IGhhbmRsZXJzIHRvIGJlIHNldCBvbiBlbWJlZGRlZCBlbnRpdHlcclxuICAgKiBAcmV0dXJucyB2b2lkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldEV2ZW50SGFuZGxlcnMoZW1iZWQ6IEVtYmVkLCBldmVudEhhbmRsZXJNYXA6IE1hcDxzdHJpbmcsIEV2ZW50SGFuZGxlciB8IG51bGw+KTogdm9pZCB7XHJcbiAgICAvLyBHZXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGV2ZW50SGFuZGxlck1hcFxyXG4gICAgY29uc3QgZXZlbnRIYW5kbGVyTWFwU3RyaW5nID0gc3RyaW5naWZ5TWFwKGV2ZW50SGFuZGxlck1hcCk7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgZXZlbnQgaGFuZGxlciBtYXAgY2hhbmdlZFxyXG4gICAgaWYgKHRoaXMucHJldkV2ZW50SGFuZGxlck1hcFN0cmluZyA9PT0gZXZlbnRIYW5kbGVyTWFwU3RyaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBVcGRhdGUgcHJldiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZXZlbnQgaGFuZGxlciBtYXBcclxuICAgIHRoaXMucHJldkV2ZW50SGFuZGxlck1hcFN0cmluZyA9IGV2ZW50SGFuZGxlck1hcFN0cmluZztcclxuXHJcbiAgICAvLyBBcHBseSBhbGwgcHJvdmlkZWQgZXZlbnQgaGFuZGxlcnNcclxuICAgIGV2ZW50SGFuZGxlck1hcC5mb3JFYWNoKChldmVudEhhbmRsZXJNZXRob2QsIGV2ZW50TmFtZSkgPT4ge1xyXG4gICAgICAvLyBSZW1vdmVzIGV2ZW50IGhhbmRsZXIgZm9yIHRoaXMgZXZlbnRcclxuICAgICAgZW1iZWQub2ZmKGV2ZW50TmFtZSk7XHJcblxyXG4gICAgICAvLyBFdmVudCBoYW5kbGVyIGlzIGVmZmVjdGl2ZWx5IHJlbW92ZWQgZm9yIHRoaXMgZXZlbnQgd2hlbiBldmVudEhhbmRsZXJNZXRob2QgaXMgbnVsbFxyXG4gICAgICBpZiAoZXZlbnRIYW5kbGVyTWV0aG9kKSB7XHJcbiAgICAgICAgLy8gU2V0IHNpbmdsZSBldmVudCBoYW5kbGVyXHJcbiAgICAgICAgZW1iZWQub24oZXZlbnROYW1lLCAoZXZlbnQ6IHNlcnZpY2UuSUN1c3RvbUV2ZW50PGFueT4pOiB2b2lkID0+IHtcclxuICAgICAgICAgIGV2ZW50SGFuZGxlck1ldGhvZChldmVudCwgZW1iZWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19