UNPKG

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
/** * 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);