UNPKG

ngx-custom-ssrs-reportviewer

Version:
114 lines (112 loc) 11.6 kB
import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/platform-browser"; export class ReportViewerComponent { constructor(sanitizer) { this.sanitizer = sanitizer; this.showparameters = "false"; this.language = "en-us"; this.width = 100; this.height = 100; this.toolbar = "true"; this.onError = new EventEmitter(); } ngOnChanges(changes) { if (!this.reporturl) { this.onError.emit("Src cannot be null"); } if ('reporturl' in changes) { this.source = this.sanitizer .bypassSecurityTrustResourceUrl(this.buildReportUrl()); } } buildParameterString() { var parameterString = ""; for (var param in this.parameters) { if (param) { if (this.parameters[param] instanceof Array === true) { for (var arrayParam in this.parameters[param]) { if (arrayParam) { parameterString += "&" + param + "=" + this.parameters[param][arrayParam]; } } } if (this.parameters[param] != null && this.parameters[param] instanceof Array === false) { parameterString += "&" + param + "=" + this.parameters[param]; } if (this.parameters[param] == null) { parameterString += "&" + param + ":isnull=true"; } } } return parameterString; } buildReportUrl() { if (!this.reporturl) { return; } var parameters = this.buildParameterString(); return this.reportserver + '?/' + this.reporturl + '&rs:Embed=true' + '&rc:Parameters=' + this.showparameters + parameters + '&rs:ParameterLanguage=' + this.language + "&rc:Toolbar=" + this.toolbar; } } ReportViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); ReportViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: ReportViewerComponent, selector: "ssrs-reportviewer", inputs: { reporturl: "reporturl", reportserver: "reportserver", showparameters: "showparameters", parameters: "parameters", language: "language", width: "width", height: "height", toolbar: "toolbar" }, outputs: { onError: "error" }, usesOnChanges: true, ngImport: i0, template: ` <div class="iframe-container"> <iframe [src]="source" scrolling="no"></iframe> </div> `, isInline: true, styles: [".iframe-container{overflow:hidden;padding-top:56.25%;position:relative}.iframe-container iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.iframe-container-4x3{padding-top:75%}\n"], encapsulation: i0.ViewEncapsulation.ShadowDom }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ReportViewerComponent, decorators: [{ type: Component, args: [{ selector: 'ssrs-reportviewer', template: ` <div class="iframe-container"> <iframe [src]="source" scrolling="no"></iframe> </div> `, styles: [` .iframe-container { overflow: hidden; padding-top: 56.25%; position: relative; } .iframe-container iframe { border: 0; height: 100%; left: 0; position: absolute; top: 0; width: 100%; } /* 4x3 Aspect Ratio */ .iframe-container-4x3 { padding-top: 75%; } `], encapsulation: ViewEncapsulation.ShadowDom }] }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { reporturl: [{ type: Input }], reportserver: [{ type: Input }], showparameters: [{ type: Input }], parameters: [{ type: Input }], language: [{ type: Input }], width: [{ type: Input }], height: [{ type: Input }], toolbar: [{ type: Input }], onError: [{ type: Output, args: ['error'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0dmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHZpZXdlci9zcmMvbGliL3JlcG9ydHZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBaUIsaUJBQWlCLEVBQUcsTUFBTSxlQUFlLENBQUM7OztBQWlDckgsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQWIzQyxtQkFBYyxHQUFZLE9BQU8sQ0FBQztRQUlsQyxhQUFRLEdBQVksT0FBTyxDQUFDO1FBRTVCLFVBQUssR0FBWSxHQUFHLENBQUM7UUFFckIsV0FBTSxHQUFZLEdBQUcsQ0FBQztRQUV0QixZQUFPLEdBQVksTUFBTSxDQUFDO1FBRVQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDSixDQUFDO0lBS2hELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVM7aUJBQzNCLDhCQUE4QixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVNLG9CQUFvQjtRQUV6QixJQUFJLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFekIsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLEtBQUssSUFBSSxFQUFFO29CQUNwRCxLQUFLLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzdDLElBQUksVUFBVSxFQUFFOzRCQUNkLGVBQWUsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3lCQUMzRTtxQkFDRjtpQkFDRjtnQkFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFDdkYsZUFBZSxJQUFJLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQy9EO2dCQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7b0JBQ2xDLGVBQWUsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLGNBQWMsQ0FBQztpQkFDakQ7YUFDRjtTQUNGO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUk7Y0FDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0I7Y0FDakMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWM7Y0FDdkMsVUFBVTtjQUNWLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDL0UsQ0FBQzs7a0hBdEVVLHFCQUFxQjtzR0FBckIscUJBQXFCLHVUQTVCdEI7Ozs7R0FJVDsyRkF3QlUscUJBQXFCO2tCQTlCakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlIsQ0FBQztvQkFDRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsU0FBUztpQkFDM0M7bUdBSUMsU0FBUztzQkFEUixLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHVyxPQUFPO3NCQUF2QixNQUFNO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3Nycy1yZXBvcnR2aWV3ZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgPGRpdiBjbGFzcz1cImlmcmFtZS1jb250YWluZXJcIj5cclxuICAgIDxpZnJhbWUgW3NyY109XCJzb3VyY2VcIiBzY3JvbGxpbmc9XCJub1wiPjwvaWZyYW1lPlxyXG4gIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gIC5pZnJhbWUtY29udGFpbmVyIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuICBcclxuICAuaWZyYW1lLWNvbnRhaW5lciBpZnJhbWUge1xyXG4gICAgIGJvcmRlcjogMDtcclxuICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgbGVmdDogMDtcclxuICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgdG9wOiAwO1xyXG4gICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBcclxuICAvKiA0eDMgQXNwZWN0IFJhdGlvICovXHJcbiAgLmlmcmFtZS1jb250YWluZXItNHgzIHtcclxuICAgIHBhZGRpbmctdG9wOiA3NSU7XHJcbiAgfVxyXG4gIGBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KClcclxuICByZXBvcnR1cmw6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHJlcG9ydHNlcnZlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd3BhcmFtZXRlcnM/OiBzdHJpbmcgPSBcImZhbHNlXCI7XHJcbiAgQElucHV0KClcclxuICBwYXJhbWV0ZXJzPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgbGFuZ3VhZ2U/OiBzdHJpbmcgPSBcImVuLXVzXCI7XHJcbiAgQElucHV0KClcclxuICB3aWR0aD86IG51bWJlciA9IDEwMDtcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodD86IG51bWJlciA9IDEwMDtcclxuICBASW5wdXQoKVxyXG4gIHRvb2xiYXI/OiBzdHJpbmcgPSBcInRydWVcIjtcclxuXHJcbiAgQE91dHB1dCgnZXJyb3InKSBvbkVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XHJcblxyXG5cclxuICBzb3VyY2U6IFNhZmVSZXNvdXJjZVVybDtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYoIXRoaXMucmVwb3J0dXJsKXtcclxuICAgICAgdGhpcy5vbkVycm9yLmVtaXQoXCJTcmMgY2Fubm90IGJlIG51bGxcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCdyZXBvcnR1cmwnIGluIGNoYW5nZXMpIHtcclxuICAgICAgdGhpcy5zb3VyY2UgPSB0aGlzLnNhbml0aXplclxyXG4gICAgICAuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuYnVpbGRSZXBvcnRVcmwoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYnVpbGRQYXJhbWV0ZXJTdHJpbmcoKTogc3RyaW5nIHtcclxuXHJcbiAgICB2YXIgcGFyYW1ldGVyU3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBmb3IgKHZhciBwYXJhbSBpbiB0aGlzLnBhcmFtZXRlcnMpIHtcclxuICAgICAgaWYgKHBhcmFtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVyc1twYXJhbV0gaW5zdGFuY2VvZiBBcnJheSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgZm9yICh2YXIgYXJyYXlQYXJhbSBpbiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1dKSB7XHJcbiAgICAgICAgICAgIGlmIChhcnJheVBhcmFtKSB7XHJcbiAgICAgICAgICAgICAgcGFyYW1ldGVyU3RyaW5nICs9IFwiJlwiICsgcGFyYW0gKyBcIj1cIiArIHRoaXMucGFyYW1ldGVyc1twYXJhbV1bYXJyYXlQYXJhbV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVyc1twYXJhbV0gIT0gbnVsbCAmJiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1dIGluc3RhbmNlb2YgQXJyYXkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICBwYXJhbWV0ZXJTdHJpbmcgKz0gXCImXCIgKyBwYXJhbSArIFwiPVwiICsgdGhpcy5wYXJhbWV0ZXJzW3BhcmFtXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVyc1twYXJhbV0gPT0gbnVsbCkge1xyXG4gICAgICAgICAgcGFyYW1ldGVyU3RyaW5nICs9IFwiJlwiICsgcGFyYW0gKyBcIjppc251bGw9dHJ1ZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhcmFtZXRlclN0cmluZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBidWlsZFJlcG9ydFVybCgpIDogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5yZXBvcnR1cmwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdmFyIHBhcmFtZXRlcnMgPSB0aGlzLmJ1aWxkUGFyYW1ldGVyU3RyaW5nKCk7XHJcbiAgICByZXR1cm4gdGhpcy5yZXBvcnRzZXJ2ZXIgKyAnPy8nXHJcbiAgICAgICsgdGhpcy5yZXBvcnR1cmwgKyAnJnJzOkVtYmVkPXRydWUnXHJcbiAgICAgICsgJyZyYzpQYXJhbWV0ZXJzPScgKyB0aGlzLnNob3dwYXJhbWV0ZXJzXHJcbiAgICAgICsgcGFyYW1ldGVyc1xyXG4gICAgICArICcmcnM6UGFyYW1ldGVyTGFuZ3VhZ2U9JyArIHRoaXMubGFuZ3VhZ2UgKyBcIiZyYzpUb29sYmFyPVwiICsgdGhpcy50b29sYmFyOyBcclxuICB9XHJcbn1cclxuIl19