devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
55 lines (54 loc) • 2.73 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\services\_aiService.js)
* Version: 26.1.3
* Build date: Jun 16, 2026
* Copyright (c) 2012 - 2026 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';
import { ReportStorageWeb } from './reportStorageWeb';
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());
}
static startReportGeneration(wizardReportModelJson) {
return sendRequest(HandlerUri(), 'startReportGeneration', wizardReportModelJson, ReportStorageWeb.getErrorMessageHandler());
}
static getReportGenerationStatus(id, ignoreError) {
return sendRequest(HandlerUri(), 'getReportGenerationStatus', PrepareRequestArgs({ id }), ReportStorageWeb.getErrorMessageHandler(), ignoreError);
}
static answerClarificationQuestion(id, answer, ignoreError) {
return sendRequest(HandlerUri(), 'answerClarificationQuestion', PrepareRequestArgs({ id, answer }), ReportStorageWeb.getErrorMessageHandler(), ignoreError);
}
static cancelReportGeneration(id) {
return sendRequest(HandlerUri(), 'cancelReportGeneration', PrepareRequestArgs({ id }), undefined, () => true);
}
}
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();
}
}