ngx-ssrs-reportviewer-v2
Version:
Angular component for rendering SSRS reports
121 lines (115 loc) • 5.7 kB
JavaScript
import * as i0 from '@angular/core';
import { EventEmitter, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, 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: "22.0.1", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: ReportViewerComponent, isStandalone: true, 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"], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", 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, changeDetection: ChangeDetectionStrategy.Eager, standalone: 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"] }]
}], 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: "22.0.1", ngImport: i0, type: ReportViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: ReportViewerModule, imports: [ReportViewerComponent], exports: [ReportViewerComponent] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ReportViewerModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ReportViewerModule, decorators: [{
type: NgModule,
args: [{
imports: [ReportViewerComponent],
exports: [ReportViewerComponent],
}]
}] });
/*
* Public API Surface of reportviewer
*/
/**
* Generated bundle index. Do not edit.
*/
export { ReportViewerComponent, ReportViewerModule };
//# sourceMappingURL=ngx-ssrs-reportviewer-v2.mjs.map