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
JavaScript
/**
* 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;
}
}