UNPKG

devexpress-reporting

Version:

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

170 lines (169 loc) 7.87 kB
/** * DevExpress HTML/JS Reporting (viewer\internal\_previewHandlersHelper.js) * Version: 20.2.13 * Build date: Apr 10, 2023 * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var analytics_utils_1 = require("@devexpress/analytics-core/analytics-utils"); var settings_1 = require("../settings"); var PreviewHandlersHelper = (function () { function PreviewHandlersHelper(preview) { this._preview = preview; } PreviewHandlersHelper.prototype.doneStartExportHandler = function (deffered, inlineResult, response, printable) { var _this = this; if (printable === void 0) { printable = false; } try { if (!response) { this._preview.progressBar.complete(); return; } this._preview._currentOperationId(response); var progress = 0; var doGetExportStatus = function (operationId) { var promise = _this._preview.getExportStatus(operationId); promise.done(function (result) { if (result && result.requestAgain) { if (progress < result.progress) { progress = result.progress; _this._preview.updateExportStatus(result.progress); } var doStatusRequest = function () { doGetExportStatus(operationId); }; settings_1.PollingDelay() ? setTimeout(doStatusRequest, settings_1.PollingDelay()) : doStatusRequest(); } else { _this._preview.progressBar.complete(); if (!result.requestAgain && result.completed) { _this._preview.updateExportStatus(result.progress); _this._preview.getExportResult(operationId, inlineResult, result.token, printable, result.uri); } } }); }; doGetExportStatus(this._preview._currentOperationId()); } finally { deffered.resolve(true); this._preview._startBuildOperationId = ''; } }; PreviewHandlersHelper.prototype.errorStartExportHandler = function (deffered, error) { this._preview.progressBar.complete(); }; PreviewHandlersHelper.prototype.doneExportStatusHandler = function (deffered, operationId, response) { try { if (!response) { deffered.resolve({ requestAgain: false }); this._preview.progressBar.complete(); return; } this._preview.progressBar && this._preview.progressBar.progress() < response.progress && this._preview.progressBar.progress(response.progress); deffered.resolve(response); } finally { if (!deffered.state || deffered.state() === 'pending') { deffered.resolve({ requestAgain: false }); } } }; PreviewHandlersHelper.prototype.errorExportStatusHandler = function (deffered, error) { this._preview.progressBar.complete(); deffered.resolve({ requestAgain: false, completed: false }); }; PreviewHandlersHelper.prototype.doneStartBuildHandler = function (deffered, response, startBuildOperationId) { var _this = this; try { var removeAllEmptyPages = function (all) { all && _this._preview.pages.removeAll(); _this._preview.removeEmptyPages(); }; if (!response || !response.documentId) { this._preview.progressBar.complete(); removeAllEmptyPages(); return; } var stopBuildRequest = this._preview._stopBuildRequests[startBuildOperationId]; var closeDocumentRequest = this._preview._closeDocumentRequests[startBuildOperationId]; if (startBuildOperationId && (stopBuildRequest || closeDocumentRequest)) { if (closeDocumentRequest) { closeDocumentRequest && this._preview.closeDocument(response.documentId); } else { stopBuildRequest && this._preview.stopBuild(response.documentId); } this._preview.progressBar.complete(); removeAllEmptyPages(); return; } this._preview._currentDocumentId(response.documentId); var doGetBuildStatus = this._preview.getDoGetBuildStatusFunc(); doGetBuildStatus(this._preview._currentDocumentId()); } finally { deffered.resolve(true); } }; PreviewHandlersHelper.prototype.errorStartBuildHandler = function (deffered, error) { this._preview.pageLoading(false); this._preview.errorMessage(analytics_utils_1.getLocalization('Document creation was cancelled due to server error', 'WebDocumentViewer_DocumentCreationCancelled')); this._preview.progressBar.complete(); deffered.resolve(true); this._preview.removeEmptyPages(); }; PreviewHandlersHelper.prototype.errorGetBuildStatusHandler = function (deffered, error, ignoreError) { deffered.resolve({ requestAgain: false, completed: false }); }; PreviewHandlersHelper.prototype.doneGetBuildStatusHandler = function (deffered, documentId, response, stopProcessingPredicate) { var _this = this; try { if (!response) { deffered.resolve({ requestAgain: false }); return; } this._preview.progressBar.progress() < response.progress && !this._preview._stopBuildRequests[documentId] && !stopProcessingPredicate() && this._preview.progressBar.progress(response.progress); var wereNoPagesAndNewOnesExist = this._preview.pageIndex() === -1 && response.pageCount > 0; if (wereNoPagesAndNewOnesExist) { this._preview.pageIndex(0); } for (var i = 0; i < response.pageCount && !this._preview._stopBuildRequests[documentId] && !stopProcessingPredicate(); i++) { var createNewPage = function (index) { return _this._preview.createPage(index, _this._preview.createBrickClickProcessor(index)); }; if (i < this._preview.pages().length) { var page = this._preview.pages()[i]; if (!page || page.isEmpty) { page = createNewPage(i); this._preview.pages.splice(i, 1, page); } if (page.pageIndex === -1) { page.pageIndex = i; if (this._preview.pageIndex.peek() === i) { page.isClientVisible(true); } } } else { var newPage = createNewPage(i); this._preview.pages.push(newPage); } } this._preview._raiseOnSizeChanged(); if (wereNoPagesAndNewOnesExist) { var pageIndex = this._preview.pages().length ? 0 : -1; this._preview.goToPage(pageIndex, true); } deffered.resolve(response); } finally { if (deffered.state() === 'pending') { deffered.resolve({ requestAgain: false }); } } }; return PreviewHandlersHelper; }()); exports.PreviewHandlersHelper = PreviewHandlersHelper;