devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
84 lines (82 loc) • 2.24 kB
JavaScript
/**
* DevExtreme (esm/exporter.js)
* Version: 21.1.4
* Build date: Mon Jun 21 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
fileSaver
} from "./exporter/file_saver";
import {
ExcelCreator,
getData as getExcelData
} from "./exporter/excel_creator";
import {
imageCreator,
testFormats,
getData as getImageData
} from "./exporter/image_creator";
import {
svgCreator,
getData as getSvgData
} from "./exporter/svg_creator";
import {
isFunction as _isFunction
} from "./core/utils/type";
import {
Deferred
} from "./core/utils/deferred";
import formatConverter from "./exporter/excel_format_converter";
import {
getData
} from "./exporter/pdf_creator";
function _export(data, options, getData) {
if (!data) {
return (new Deferred).resolve()
}
var exportingAction = options.exportingAction;
var exportedAction = options.exportedAction;
var fileSavingAction = options.fileSavingAction;
var eventArgs = {
fileName: options.fileName,
format: options.format,
cancel: false
};
_isFunction(exportingAction) && exportingAction(eventArgs);
if (!eventArgs.cancel) {
return getData(data, options).then(blob => {
_isFunction(exportedAction) && exportedAction();
if (_isFunction(fileSavingAction)) {
eventArgs.data = blob;
fileSavingAction(eventArgs)
}
if (!eventArgs.cancel) {
fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)
}
})
}
return (new Deferred).resolve()
}
export {
_export as
export, fileSaver
};
export var excel = {
creator: ExcelCreator,
getData: getExcelData,
formatConverter: formatConverter
};
export var image = {
creator: imageCreator,
getData: getImageData,
testFormats: testFormats
};
export var pdf = {
getData: getData
};
export var svg = {
creator: svgCreator,
getData: getSvgData
};