devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
42 lines (41 loc) • 1.86 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\services\_aiService.js)
* Version: 25.2.3
* Build date: Dec 15, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { DxDeferred, sendRequest } from '@devexpress/analytics-core/analytics-internal';
import { PrepareRequestArgs } from '@devexpress/analytics-core/analytics-utils';
import { DataBindingMode, HandlerUri } from '../utils/settings';
import { ReportPreviewService } from './_reportPreviewService';
import { PreviewRequestWrapper } from '../../viewer/internal/_previewRequestWrapper';
export class ReportAIService {
static localize(strings, language) {
return sendRequest(HandlerUri(), 'localize', PrepareRequestArgs({ strings, language }), PreviewRequestWrapper.getProcessErrorCallback());
}
static initializePreviewWithFakeData(report) {
const args = {
...ReportPreviewService._getInitializePreviewArgs(report),
dataBindingMode: DataBindingMode(),
};
return sendRequest(HandlerUri(), 'initializePreviewWithFakeData', PrepareRequestArgs(args), PreviewRequestWrapper.getProcessErrorCallback());
}
}
export class ReportPreviewServiceHelper {
initializePreview(report, useAI = false) {
this.initializeDeferred?.reject();
const deferred = new DxDeferred();
const promise = useAI ? ReportAIService.initializePreviewWithFakeData(report) :
ReportPreviewService.initializePreview(report);
this.initializeDeferred = deferred;
promise.done((result) => {
deferred.resolve(result);
}).fail((error) => {
deferred.reject(error);
}).always(() => {
this.initializeDeferred = null;
});
return deferred.promise();
}
}