UNPKG

devexpress-reporting

Version:

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

89 lines (88 loc) 3.68 kB
/** * DevExpress HTML/JS Reporting (viewer\reportPreview.viewModel.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 */ import { createViewModelGenerator } from '@devexpress/analytics-core/analytics-serializer-native'; export function createReportPreviewViewModel(base) { return createViewModelGenerator(base) .generateProperty('editingFieldsHighlighted', this.editingFieldsHighlighted) .generateProperty('rtlReport', this.rtlReport) .generateProperty('currentPage', this.currentPage?.getViewModel()) .generateProperty('progressBar', this.progressBar?.getViewModel()) .generateProperty('showMultipagePreview', this.showMultipagePreview) .generateProperty('previewVisible', this.previewVisible) .generateProperty('getSelectedContent', (mask) => this.getSelectedContent(mask)) .generateProperty('lazyImagesOptions', { getEnabled: () => this.showMultipagePreview, setLoadVisibleImagesCallback: (callback) => { this._loadVisibleImages = callback; return () => { this._loadVisibleImages = null; }; }, getPage: (index) => { return this.pages[index]; }, setPageVisibility: (page, isVisible) => this.setPageVisibility(page.getModel(), isVisible) }) .generateProperty('pages', this._getPagesViewModels()) .generateProperty('delayedInit', () => this.delayedInit()) .generateProperty('emptyDocumentCaption', this.emptyDocumentCaption) .generateProperty('previewBrickKeyboardHelper', this.previewBrickKeyboardHelper) .getViewModel(); } export function updateReportPreviewViewModel(args) { const viewModel = this.getViewModel(); if (args.propertyName === 'editingFieldsHighlighted') { viewModel.editingFieldsHighlighted = this.editingFieldsHighlighted; } if (args.propertyName === 'showMultipagePreview') { viewModel.showMultipagePreview = this.showMultipagePreview; } if (args.propertyName === 'rtlReport') { viewModel.rtlReport = this.rtlReport; } if (args.propertyName === 'emptyDocumentCaption') { viewModel.emptyDocumentCaption = this.emptyDocumentCaption; } if (args.propertyName === 'previewVisible') { viewModel.previewVisible = this.previewVisible; } if (args.propertyName === 'currentPage') { viewModel.currentPage = this.currentPage?.getViewModel(); } if (args.propertyName === 'pages') { if ('removed' in args) { args.removed.forEach(removed => viewModel.pages.splice(removed.index, 1)); } if ('added' in args) { let array = []; const addItems = () => { if (array.length === 0) return; const items = array.map(x => x.item.getViewModel()); viewModel.pages.splice(array[0].index, 0, ...items); }; args.added.forEach(added => { const lastAdded = array[array.length - 1]; if (!lastAdded || added.index === lastAdded.index + 1) { array.push(added); } else { addItems(); array = [added]; } }); addItems(); } else { viewModel.pages = this._getPagesViewModels(); } } if (args.propertyName === 'signatures') { viewModel.signatures = this.signatures; } }