exporter.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * DevExtreme (exporter.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var fileSaver = require("./exporter/file_saver").fileSaver;
  11. var excelCreator = require("./exporter/excel_creator");
  12. var imageCreator = require("./exporter/image_creator");
  13. var svgCreator = require("./exporter/svg_creator");
  14. var _isFunction = require("./core/utils/type").isFunction;
  15. var Deferred = require("./core/utils/deferred").Deferred;
  16. exports.export = function(data, options, getData) {
  17. if (!data) {
  18. return (new Deferred).resolve()
  19. }
  20. var exportingAction = options.exportingAction;
  21. var exportedAction = options.exportedAction;
  22. var fileSavingAction = options.fileSavingAction;
  23. var eventArgs = {
  24. fileName: options.fileName,
  25. format: options.format,
  26. cancel: false
  27. };
  28. _isFunction(exportingAction) && exportingAction(eventArgs);
  29. if (!eventArgs.cancel) {
  30. return getData(data, options, function(blob) {
  31. _isFunction(exportedAction) && exportedAction();
  32. if (_isFunction(fileSavingAction)) {
  33. eventArgs.data = blob;
  34. fileSavingAction(eventArgs)
  35. }
  36. if (!eventArgs.cancel) {
  37. fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)
  38. }
  39. })
  40. }
  41. return (new Deferred).resolve()
  42. };
  43. exports.fileSaver = fileSaver;
  44. exports.excel = {
  45. creator: excelCreator.ExcelCreator,
  46. getData: excelCreator.getData,
  47. formatConverter: require("./exporter/excel_format_converter")
  48. };
  49. exports.image = {
  50. creator: imageCreator.imageCreator,
  51. getData: imageCreator.getData,
  52. testFormats: imageCreator.testFormats
  53. };
  54. exports.pdf = {
  55. getData: require("./exporter/pdf_creator").getData
  56. };
  57. exports.svg = {
  58. creator: svgCreator.svgCreator,
  59. getData: svgCreator.getData
  60. };