UNPKG

devexpress-reporting

Version:

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

115 lines (114 loc) 5.33 kB
/** * DevExpress HTML/JS Reporting (viewer\internal\_page.viewModel.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 { createViewModelGenerator } from '@devexpress/analytics-core/analytics-serializer-native'; import { getLocalization, } from '@devexpress/analytics-core/analytics-utils-native'; import { AIServicesEnabled } from '../settings'; export function createPreviewPageViewModel(base) { return createViewModelGenerator(base) .generateProperty('pageLoading', this.pageLoading) .generateProperty('pageLoaded', !!(this.svgMarkup || this.displayImageSrc)) .generateProperty('brickLoading', this.brickLoading) .generateProperty('width', this.size.width) .generateProperty('height', this.size.height) .generateProperty('displayImageSrc', this.displayImageSrc) .generateProperty('loadingText', getLocalization('Loading...', 'AnalyticsCoreStringId.Loading')) .generateProperty('delayedInit', () => this.reportPreview.delayedInit()) .generateProperty('brickSelectionProg', { page: this, preview: this.reportPreview, click: (pageIndex) => this.reportPreview.goToPage(pageIndex) }) .generateProperty('autoFitOptions', { setZoom: (newValue) => { if (this.isDisposing) return; this.reportPreview.originalZoom = newValue; }, setAutoFitChangedEvent: (callback) => { this._onAutoFitChanged = callback; return () => this._onAutoFitChanged = undefined; }, getPageSizeConfiguration: () => this._getPageSizeConfiguration() }) .generateProperty('imageOptions', this._getImageOptions()) .generateProperty('clickToBrick', (_, event) => this._clickToBrick(event)) .generateProperty('currentPageAriaLabelImgAlt', this.currentPageAriaLabelImgAlt) .generateProperty('editingFields', this.editingFields) .generateProperty('color', this.color) .generateProperty('bricks', this.bricks) .generateProperty('activeBricks', this.activeBricks) .generateProperty('active', this.active) .generateProperty('clickableBricks', this.clickableBricks) .generateProperty('setPageActiveChangedEvent', (callback) => { this._onPageActiveChanged = callback; return () => { this._onPageActiveChanged = undefined; }; }) .generateProperty('editingFieldsKeyboardHelper', this.editingFieldsKeyboardHelper) .generateProperty('smartTagAIMenu', this.smartTagAIMenu) .generateProperty('smartTagAIMenuPosition', this.smartTagAIMenuPosition) .generateProperty('aiServicesEnabled', AIServicesEnabled()) .getViewModel(); } export function updatePreviewPageViewModel(args) { const viewModel = this.getViewModel(); if (args.propertyName === 'displayImageSrc' || args.propertyName === 'svgMarkup' || args.propertyName === 'currentPageAriaLabelImgAlt' || args.propertyName === 'useSvg' || args.propertyName === 'size') { viewModel.imageOptions = this._getImageOptions(); } if (args.propertyName === 'displayImageSrc' || args.propertyName === 'svgMarkup') { viewModel.pageLoaded = !!(this.displayImageSrc || this.svgMarkup); } if (args.propertyName === 'displayImageSrc') { viewModel.displayImageSrc = this.displayImageSrc; } else if (args.propertyName === 'pageLoading') { viewModel.pageLoading = this.pageLoading; } else if (args.propertyName === 'brickLoading') { viewModel.brickLoading = this.brickLoading; } else if (args.propertyName === 'isClientVisible') { viewModel.isClientVisible = this.isClientVisible; } else if (args.propertyName === 'active') { viewModel.active = this.active; } else if (args.propertyName === 'size') { viewModel.width = args.newValue['width']; viewModel.height = args.newValue['height']; } else if (args.propertyName === 'brick') { viewModel.bricks = this.bricks; viewModel.activeBricks = this.activeBricks; viewModel.clickableBricks = this.clickableBricks; } else if (args.propertyName === 'activeBricks') { if ('added' in args) { const arrayArgs = args; viewModel.activeBricks.push(...arrayArgs.added.map(x => x.item)); arrayArgs.removed.forEach((x) => { viewModel.activeBricks.splice(viewModel.activeBricks.indexOf(x.item), 1); }); } else { viewModel.activeBricks = this.activeBricks; } } else if (args.propertyName === 'editingFields') { viewModel.editingFields = this.editingFields.map(x => x.getViewModel()); } else if (args.propertyName === 'currentPageAriaLabelImgAlt') { viewModel.currentPageAriaLabelImgAlt = this.currentPageAriaLabelImgAlt; } else if (args.propertyName === 'smartTagAIMenuPosition') { viewModel.smartTagAIMenuPosition = this.smartTagAIMenuPosition; } else if (args.propertyName == 'smartTagAIMenu') { viewModel.smartTagAIMenu = this.smartTagAIMenu; } }