devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
70 lines (69 loc) • 2.75 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (viewer\binding\jsReportViewerBase.js)
* Version: 24.2.6
* Build date: Mar 18, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { koUtils } from '@devexpress/analytics-core/analytics-internal-native';
import { BaseModel, mutable } from '@devexpress/analytics-core/analytics-serializer-native';
export class JSReportViewerBase extends BaseModel {
onPropertyChanged(args) {
if (args.propertyName === 'previewModel') {
args.oldValue?.dispose();
}
}
dispose() {
const previewModel = this.GetPreviewModel();
if (previewModel)
previewModel.dispose();
}
constructor(_previewModel) {
super();
this.previewModel = koUtils.unwrap(_previewModel);
if (koUtils.isSubscribable(_previewModel)) {
let inUpdate = false;
const lock = (callback) => {
if (!inUpdate) {
inUpdate = true;
callback();
inUpdate = false;
}
};
this.addDisposable(_previewModel.subscribe((newVal) => {
lock(() => this.previewModel = newVal);
}), this.events.on('propertyChanged', (args) => {
if (args.propertyName === 'previewModel') {
lock(() => _previewModel(args.newValue));
}
}));
}
}
previewExists() {
return this.previewModel && this.previewModel.reportPreview;
}
GetPreviewModel() {
return this.previewModel;
}
GetParametersModel() {
return this.previewModel && this.previewModel.GetParametersModel();
}
OpenReport(reportName) {
return this.previewExists() && this.previewModel.OpenReport(reportName);
}
Close() {
this.previewExists() && this.previewModel.Close();
}
ResetParameters() {
this.previewModel && this.previewModel.ResetParameters();
}
}
__decorate([
mutable(null)
], JSReportViewerBase.prototype, "previewModel", void 0);