ngx-ssrs-reportviewer-v2
Version:
Angular component for rendering SSRS reports
115 lines (109 loc) • 5.5 kB
JavaScript
import * as i0 from '@angular/core';
import { EventEmitter, Component, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
import * as i1 from '@angular/platform-browser';
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;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: ReportViewerComponent, isStandalone: false, 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: "19.0.3", ngImport: i0, type: ReportViewerComponent, decorators: [{
type: Component,
args: [{ selector: 'ssrs-reportviewer', template: `
<div class="iframe-container">
<iframe [src]="source" scrolling="no"></iframe>
</div>
`, encapsulation: ViewEncapsulation.ShadowDom, standalone: false, 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"] }]
}], ctorParameters: () => [{ 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']
}] } });
class ReportViewerModule {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ReportViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: ReportViewerModule, declarations: [ReportViewerComponent], exports: [ReportViewerComponent] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ReportViewerModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ReportViewerModule, decorators: [{
type: NgModule,
args: [{
declarations: [ReportViewerComponent],
imports: [],
exports: [ReportViewerComponent]
}]
}] });
/*
* Public API Surface of reportviewer
*/
/**
* Generated bundle index. Do not edit.
*/
export { ReportViewerComponent, ReportViewerModule };
//# sourceMappingURL=ngx-ssrs-reportviewer-v2.mjs.map