UNPKG

devexpress-reporting

Version:

DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.

85 lines (84 loc) 3.57 kB
/** * DevExpress HTML/JS Reporting (viewer\internal\_previewModelBase.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 { appendStaticContextToRootViewModel, staticContext } from '@devexpress/analytics-core/analytics-internal-native'; import { BaseRenderingModel, createViewModelGenerator, mutable, ViewModelChangedEvent } from '@devexpress/analytics-core/analytics-serializer-native'; import { formatSearchResult } from '../search/_utils'; export class PreviewDisposableModelBase extends BaseRenderingModel { constructor(options, viewPortCss) { super(); this.rootStyle = options.rootStyle; this.reportPreview = options.reportPreview; this.parametersModel = options.parametersModel; this.rtl = options.rtl; this.viewPortCss = viewPortCss; this._disposables.push(options.reportPreview); this._disposables.push(options.parametersModel); } onPropertyChanged(args) { } createViewModel() { const viewModel = createViewModelGenerator(super.createViewModel()) .generateProperty('parts', this.parts) .generateProperty('rootStyle', this.rootStyle) .generateProperty('rtl', this.rtl) .getViewModel(); appendStaticContextToRootViewModel(viewModel, { _static: { ...staticContext._static, formatSearchResult: formatSearchResult } }, this.viewPortCss); return viewModel; } updateViewModel(args) { const viewModel = this.getViewModel(); if (args.propertyName === 'parts') viewModel.parts = this.parts; } subscribeViewModelToDesignerParts() { const viewModel = this.getViewModel(); const viewModelEventManager = viewModel; viewModel .parts .filter(part => part.viewModel) .forEach(part => { const disposeCallback = part.viewModel._viewModelEvents?.on(ViewModelChangedEvent, args => { const eventArgs = { ...args, propertyName: `parts.${part.id}.${args.propertyName}` }; viewModelEventManager._viewModelEvents.call(ViewModelChangedEvent, eventArgs); }); this._disposables.push({ dispose: disposeCallback }); }); } OpenReport(reportName) { return this.reportPreview.openReport(reportName); } GetParametersModel() { return this.parametersModel; } ResetParameters() { this.parametersModel && this.parametersModel.restore(); } Close() { this.reportPreview.deactivate(); } dispose() { super.dispose(); this.removeProperties(); } } __decorate([ mutable(() => []) ], PreviewDisposableModelBase.prototype, "parts", void 0);