devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
78 lines (77 loc) • 3.43 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (viewer\internal\_previewModel.js)
* Version: 24.2.7
* Build date: Apr 29, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { ToolbarKeyboardHelper } from '@devexpress/analytics-core/analytics-internal-native';
import { createViewModelGenerator } from '@devexpress/analytics-core/analytics-serializer-native';
import { PreviewDisposableModelBase } from './_previewModelBase';
export class PreviewDisposableModel extends PreviewDisposableModelBase {
constructor(options) {
super(options, 'dx-report-viewer');
this.exportModel = options.exportModel;
this.searchModel = options.searchModel;
this._disposables.push(options.exportModel);
this._disposables.push(options.searchModel);
}
createViewModel() {
const viewModel = createViewModelGenerator(super.createViewModel())
.generateProperty('reportPreview', this.reportPreview.getViewModel())
.generateProperty('exportHandler', this.reportPreview.exportHandler.getViewModel())
.getViewModel();
return viewModel;
}
_addDisposable(object) {
this._disposables.push(object);
}
Print(pageIndex) {
this.reportPreview.printDocument(pageIndex);
}
ExportTo(format, inlineResult) {
if (!this.reportPreview.exportDisabled) {
this.reportPreview.exportDocumentTo(format || 'pdf', inlineResult);
}
}
GetCurrentPageIndex() {
return this.reportPreview.pageIndex;
}
GoToPage(pageIndex) {
this.reportPreview.goToPage(pageIndex);
}
StartBuild() {
this.parametersModel && this.parametersModel.submit();
}
PerformCustomDocumentOperation(customData, hideMessageFromUser) {
return this.reportPreview.customDocumentOperation(customData, hideMessageFromUser);
}
}
export class PreviewModel extends PreviewDisposableModel {
createViewModel() {
return createViewModelGenerator(super.createViewModel())
.generateProperty('reportPreview', this.reportPreview.getViewModel())
.generateProperty('accessibilityCompliant', this.accessibilityCompliant)
.generateProperty('toolBar', createViewModelGenerator()
.generateProperty('actionLists', this.actionLists.getViewModel())
.generateProperty('canSwitchToDesigner', this.reportPreview.canSwitchToDesigner)
.generateProperty('keyboardHelper', this.keyboardHelper)
.getViewModel())
.generateProperty('breadcrumb', this.breadcrumb.getViewModel())
.generateProperty('tabPanel', this.tabPanel.getViewModel())
.getViewModel();
}
constructor(options) {
super(options);
this.documentMapModel = options.documentMapModel;
this.tabPanel = options.tabPanel;
this.actionLists = options.actionLists;
this.accessibilityCompliant = options.accessibilityCompliant;
this.breadcrumb = options.breadcrumb;
this._disposables.push(options.documentMapModel);
this._disposables.push(options.tabPanel);
this._disposables.push(options.actionLists);
this.keyboardHelper = new ToolbarKeyboardHelper(this.actionLists.toolbarItems);
this._disposables.push(this.keyboardHelper);
}
}