diff --git a/docs/assets/js/_vendor/filesaver.js b/docs/assets/js/_vendor/filesaver.js index 8a61f988c2..6095017e94 100644 --- a/docs/assets/js/_vendor/filesaver.js +++ b/docs/assets/js/_vendor/filesaver.js @@ -1,37 +1,37 @@ /* FileSaver.js - * A saveAs() FileSaver implementation. - * 2014-01-24 + * A saveAs() FileSaver implementation. + * 2014-05-27 * - * By Eli Grey, http://eligrey.com - * License: X11/MIT - * See LICENSE.md + * By Eli Grey, http://eligrey.com + * License: X11/MIT + * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md */ /*global self */ -/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true, - plusplus: true */ +/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ var saveAs = saveAs // IE 10+ (native saveAs) - || (navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator)) + || (typeof navigator !== "undefined" && + navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator)) // Everyone else || (function(view) { "use strict"; // IE <10 is explicitly unsupported - if (/MSIE [1-9]\./.test(navigator.userAgent)) { + if (typeof navigator !== "undefined" && + /MSIE [1-9]\./.test(navigator.userAgent)) { return; } var doc = view.document - // only get URL when necessary in case BlobBuilder.js hasn't overridden it yet + // only get URL when necessary in case Blob.js hasn't overridden it yet , get_URL = function() { return view.URL || view.webkitURL || view; } - , URL = view.URL || view.webkitURL || view , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a") - , can_use_save_link = !view.externalHost && "download" in save_link + , can_use_save_link = !view.externalHost && "download" in save_link , click = function(node) { var event = doc.createEvent("MouseEvents"); event.initMouseEvent( @@ -42,7 +42,7 @@ var saveAs = saveAs } , webkit_req_fs = view.webkitRequestFileSystem , req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem - , throw_outside = function (ex) { + , throw_outside = function(ex) { (view.setImmediate || view.setTimeout)(function() { throw ex; }, 0); @@ -55,7 +55,7 @@ var saveAs = saveAs while (i--) { var file = deletion_queue[i]; if (typeof file === "string") { // file is an object URL - URL.revokeObjectURL(file); + get_URL().revokeObjectURL(file); } else { // file is a File file.remove(); } @@ -101,8 +101,8 @@ var saveAs = saveAs if (target_view) { target_view.location.href = object_url; } else { - window.open(object_url, "_blank"); - } + window.open(object_url, "_blank"); + } filesaver.readyState = filesaver.DONE; dispatch_all(); } @@ -122,20 +122,9 @@ var saveAs = saveAs } if (can_use_save_link) { object_url = get_object_url(blob); - // FF for Android has a nasty garbage collection mechanism - // that turns all objects that are not pure javascript into 'deadObject' - // this means `doc` and `save_link` are unusable and need to be recreated - // `view` is usable though: - doc = view.document; - save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a"); save_link.href = object_url; save_link.download = name; - var event = doc.createEvent("MouseEvents"); - event.initMouseEvent( - "click", true, false, view, 0, 0, 0, 0, 0 - , false, false, false, false, 0, null - ); - save_link.dispatchEvent(event); + click(save_link); filesaver.readyState = filesaver.DONE; dispatch_all(); return; @@ -229,6 +218,10 @@ var saveAs = saveAs null; view.addEventListener("unload", process_deletion_queue, false); + saveAs.unload = function() { + process_deletion_queue(); + view.removeEventListener("unload", process_deletion_queue, false); + }; return saveAs; }( typeof self !== "undefined" && self @@ -239,4 +232,10 @@ var saveAs = saveAs // while `this` is nsIContentFrameMessageManager // with an attribute `content` that corresponds to the window -if (typeof module !== "undefined") module.exports = saveAs; +if (typeof module !== "undefined" && module !== null) { + module.exports = saveAs; +} else if ((typeof define !== "undefined" && define !== null) && (define.amd != null)) { + define([], function() { + return saveAs; + }); +}