stimulsoft-viewer-angular
Version:
Stimulsoft Viewer Angular
63 lines • 10.6 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "./controller.service";
import * as i2 from "./model.service";
import * as i3 from "./dashboard-proxy.service";
export class DashboardService {
constructor(controller, model, proxy) {
this.controller = controller;
this.model = model;
this.proxy = proxy;
this.scriptLoaded = false;
controller.getMessage().subscribe((message) => {
if (message.action === 'ShowDashboard') {
this.model.showDashboard = true;
this.model.proxyData = JSON.stringify(message.data);
this.proxy.openReport = message.data.action == 'OpenReport';
this.addScript();
}
});
}
addScript() {
if (this.script) {
this.head.removeChild(this.script);
}
let srcBegin = this.model.dashboards.indexOf("src=\"") + 5;
let srcEnd = this.model.dashboards.indexOf("\"", srcBegin + 1) - 1;
this.script = document.createElement('Script');
this.script.setAttribute('type', 'text/javascript');
var src = this.model.dashboards.substring(srcBegin, srcEnd);
this.head.appendChild(this.script);
let this_ = this;
this.proxy.getText(src).then(function (data) {
this_.script.innerHTML = data;
this_.scriptLoaded = true;
this_.startDashboards();
});
}
startDashboards() {
if (this.startScript) {
this.head.removeChild(this.startScript);
}
let srcBegin = this.model.dashboards.indexOf("var jsviewer");
let srcEnd = this.model.dashboards.lastIndexOf("</script>") - 1;
let script = this.model.dashboards.substring(srcBegin, srcEnd);
let idBegin = this.model.dashboards.indexOf("viewerId\":\"") + 11;
let idEnd = this.model.dashboards.indexOf("\"", idBegin);
let viewerId = this.model.dashboards.substring(idBegin, idEnd);
script += '; js' + viewerId + '.options.reportDesignerMode = true; js' + viewerId + '.options.clientGuid = "' + this.model.options.clientGuid + '";' +
'js' + viewerId + '.options.frameworkType += ", Angular";' +
'js' + viewerId + '.options.replaceHtmlFormWithRequest = ' + this.model.options.replaceHtmlFormWithRequest + ';';
document["proxy" + viewerId] = this.proxy;
eval(script);
}
get head() {
return document.getElementsByTagName('head')[0];
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardService, deps: [{ token: i1.ControllerService }, { token: i2.ModelService }, { token: i3.DashboardProxyService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.ControllerService }, { type: i2.ModelService }, { type: i3.DashboardProxyService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdGltdWxzb2Z0LXZpZXdlci1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZGFzaGJvYXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPM0MsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUFvQixVQUE2QixFQUFTLEtBQW1CLEVBQVMsS0FBNEI7UUFBOUYsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFKMUcsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFNM0IsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNyRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7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Z0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xsZXJTZXJ2aWNlIH0gZnJvbSAnLi9jb250cm9sbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRQcm94eVNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC1wcm94eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJy4vb2JqZWN0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBzY3JpcHRMb2FkZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHNjcmlwdDogYW55O1xyXG4gIHByaXZhdGUgc3RhcnRTY3JpcHQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250cm9sbGVyOiBDb250cm9sbGVyU2VydmljZSwgcHVibGljIG1vZGVsOiBNb2RlbFNlcnZpY2UsIHB1YmxpYyBwcm94eTogRGFzaGJvYXJkUHJveHlTZXJ2aWNlKSB7XHJcblxyXG4gICAgY29udHJvbGxlci5nZXRNZXNzYWdlKCkuc3Vic2NyaWJlKChtZXNzYWdlOiBNZXNzYWdlKSA9PiB7XHJcbiAgICAgIGlmIChtZXNzYWdlLmFjdGlvbiA9PT0gJ1Nob3dEYXNoYm9hcmQnKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5zaG93RGFzaGJvYXJkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnByb3h5RGF0YSA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UuZGF0YSk7XHJcbiAgICAgICAgdGhpcy5wcm94eS5vcGVuUmVwb3J0ID0gbWVzc2FnZS5kYXRhLmFjdGlvbiA9PSAnT3BlblJlcG9ydCc7XHJcbiAgICAgICAgdGhpcy5hZGRTY3JpcHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRTY3JpcHQoKSB7XHJcbiAgICBpZiAodGhpcy5zY3JpcHQpIHtcclxuICAgICAgdGhpcy5oZWFkLnJlbW92ZUNoaWxkKHRoaXMuc2NyaXB0KTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3JjQmVnaW4gPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMuaW5kZXhPZihcInNyYz1cXFwiXCIpICsgNTtcclxuICAgIGxldCBzcmNFbmQgPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMuaW5kZXhPZihcIlxcXCJcIiwgc3JjQmVnaW4gKyAxKSAtIDE7XHJcblxyXG4gICAgdGhpcy5zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdTY3JpcHQnKSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcclxuICAgIHRoaXMuc2NyaXB0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTtcclxuXHJcbiAgICB2YXIgc3JjID0gdGhpcy5tb2RlbC5kYXNoYm9hcmRzLnN1YnN0cmluZyhzcmNCZWdpbiwgc3JjRW5kKTtcclxuICAgIHRoaXMuaGVhZC5hcHBlbmRDaGlsZCh0aGlzLnNjcmlwdCk7XHJcblxyXG4gICAgbGV0IHRoaXNfID0gdGhpcztcclxuICAgIHRoaXMucHJveHkuZ2V0VGV4dChzcmMpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgdGhpc18uc2NyaXB0LmlubmVySFRNTCA9IGRhdGE7XHJcbiAgICAgIHRoaXNfLnNjcmlwdExvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXNfLnN0YXJ0RGFzaGJvYXJkcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0RGFzaGJvYXJkcygpIHtcclxuICAgIGlmICh0aGlzLnN0YXJ0U2NyaXB0KSB7XHJcbiAgICAgIHRoaXMuaGVhZC5yZW1vdmVDaGlsZCh0aGlzLnN0YXJ0U2NyaXB0KTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3JjQmVnaW4gPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMuaW5kZXhPZihcInZhciBqc3ZpZXdlclwiKTtcclxuICAgIGxldCBzcmNFbmQgPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMubGFzdEluZGV4T2YoXCI8L3NjcmlwdD5cIikgLSAxO1xyXG4gICAgbGV0IHNjcmlwdCA9IHRoaXMubW9kZWwuZGFzaGJvYXJkcy5zdWJzdHJpbmcoc3JjQmVnaW4sIHNyY0VuZCk7XHJcblxyXG4gICAgbGV0IGlkQmVnaW4gPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMuaW5kZXhPZihcInZpZXdlcklkXFxcIjpcXFwiXCIpICsgMTE7XHJcbiAgICBsZXQgaWRFbmQgPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMuaW5kZXhPZihcIlxcXCJcIiwgaWRCZWdpbik7XHJcbiAgICBsZXQgdmlld2VySWQgPSB0aGlzLm1vZGVsLmRhc2hib2FyZHMuc3Vic3RyaW5nKGlkQmVnaW4sIGlkRW5kKTtcclxuXHJcbiAgICBzY3JpcHQgKz0gJzsganMnICsgdmlld2VySWQgKyAnLm9wdGlvbnMucmVwb3J0RGVzaWduZXJNb2RlID0gdHJ1ZTsganMnICsgdmlld2VySWQgKyAnLm9wdGlvbnMuY2xpZW50R3VpZCA9IFwiJyArIHRoaXMubW9kZWwub3B0aW9ucy5jbGllbnRHdWlkICsgJ1wiOycgK1xyXG4gICAgICAnanMnICsgdmlld2VySWQgKyAnLm9wdGlvbnMuZnJhbWV3b3JrVHlwZSArPSBcIiwgQW5ndWxhclwiOycgK1xyXG4gICAgICAnanMnICsgdmlld2VySWQgKyAnLm9wdGlvbnMucmVwbGFjZUh0bWxGb3JtV2l0aFJlcXVlc3QgPSAnICsgdGhpcy5tb2RlbC5vcHRpb25zLnJlcGxhY2VIdG1sRm9ybVdpdGhSZXF1ZXN0ICsgJzsnO1xyXG5cclxuICAgIGRvY3VtZW50W1wicHJveHlcIiArIHZpZXdlcklkXSA9IHRoaXMucHJveHk7XHJcbiAgICBldmFsKHNjcmlwdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhlYWQoKTogSFRNTEhlYWRFbGVtZW50IHtcclxuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gIH1cclxufVxyXG4iXX0=