devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
61 lines (60 loc) • 2.13 kB
JavaScript
/**
* DevExtreme (exporter.js)
* Version: 18.2.18
* Build date: Tue Oct 18 2022
*
* Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
var fileSaver = require("./exporter/file_saver").fileSaver,
excelCreator = require("./exporter/excel_creator"),
imageCreator = require("./exporter/image_creator"),
svgCreator = require("./exporter/svg_creator"),
_isFunction = require("./core/utils/type").isFunction,
Deferred = require("./core/utils/deferred").Deferred;
exports.export = function(data, options, getData) {
if (!data) {
return (new Deferred).resolve()
}
var exportingAction = options.exportingAction,
exportedAction = options.exportedAction,
fileSavingAction = options.fileSavingAction,
eventArgs = {
fileName: options.fileName,
format: options.format,
cancel: false
};
_isFunction(exportingAction) && exportingAction(eventArgs);
if (!eventArgs.cancel) {
return getData(data, options, function(blob) {
_isFunction(exportedAction) && exportedAction();
if (_isFunction(fileSavingAction)) {
eventArgs.data = blob;
fileSavingAction(eventArgs)
}
if (!eventArgs.cancel) {
fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, void 0, options.forceProxy)
}
})
}
return (new Deferred).resolve()
};
exports.fileSaver = fileSaver;
exports.excel = {
creator: excelCreator.ExcelCreator,
getData: excelCreator.getData,
formatConverter: require("./exporter/excel_format_converter")
};
exports.image = {
creator: imageCreator.imageCreator,
getData: imageCreator.getData,
testFormats: imageCreator.testFormats
};
exports.pdf = {
getData: require("./exporter/pdf_creator").getData
};
exports.svg = {
creator: svgCreator.svgCreator,
getData: svgCreator.getData
};