UNPKG

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