Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5914e2a573 | ||
|
|
6356c3f6f6 | ||
|
|
24f9aaca80 | ||
|
|
f1959c87cd | ||
|
|
dfd58561fb | ||
|
|
a5dbf55c17 | ||
|
|
5978f3c577 | ||
|
|
9570cf7362 | ||
|
|
b1158d0c33 | ||
|
|
b6c236d96d | ||
|
|
164deec5ab | ||
|
|
99a89750b0 | ||
|
|
ff675f8052 | ||
|
|
17d5c67eb3 | ||
|
|
70bb521e5d | ||
|
|
b4c11367c0 | ||
|
|
281a1c1a93 | ||
|
|
d02373e40d | ||
|
|
d7f5db3244 | ||
|
|
b4a918669a | ||
|
|
5733e40e5a | ||
|
|
74f089808e | ||
|
|
fe42ec4055 | ||
|
|
0b90542535 | ||
|
|
c3e4a45021 | ||
|
|
db089ce81e | ||
|
|
1bf9b35b54 | ||
|
|
c347c51f6e | ||
|
|
945f08bc74 | ||
|
|
dffa3a4989 | ||
|
|
4db4a78aad | ||
|
|
d89ed13171 | ||
|
|
aa9f4e0e03 | ||
|
|
cafa1bfebb |
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"presets": [
|
||||
["env", {
|
||||
"targets": {
|
||||
"browsers": [
|
||||
"ie > 9"
|
||||
]
|
||||
}
|
||||
}]
|
||||
],
|
||||
"plugins": [
|
||||
"transform-es2015-modules-umd"
|
||||
],
|
||||
"env": {
|
||||
"production": {
|
||||
"presets": ["minify"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
node_modules/
|
||||
.DS_Store
|
||||
.idea/
|
||||
|
||||
# Generated files
|
||||
/dist/
|
||||
Vendored
-2
@@ -1,2 +0,0 @@
|
||||
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
|
||||
var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,a=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",d=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,d)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(a){u(a)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,d){if(!d){t=p(t)}var v=this,w=t.type,m=w===s,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&i)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;a(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define("FileSaver.js",function(){return saveAs})}
|
||||
@@ -32,6 +32,7 @@ Supported browsers
|
||||
| Opera < 15 | data: URI | No | n/a | [Blob.js](https://github.com/eligrey/Blob.js) |
|
||||
| Safari 6.1+* | Blob | No | ? | None |
|
||||
| Safari < 6 | data: URI | No | n/a | [Blob.js](https://github.com/eligrey/Blob.js) |
|
||||
| Safari 10.1+ | Blob | Yes | n/a | None |
|
||||
|
||||
Feature detection is possible:
|
||||
|
||||
@@ -67,11 +68,18 @@ Pass `true` for `disableAutoBOM` if you don't want FileSaver.js to automatically
|
||||
Examples
|
||||
--------
|
||||
|
||||
### Saving text using require
|
||||
```js
|
||||
var FileSaver = require('file-saver');
|
||||
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
|
||||
FileSaver.saveAs(blob, "hello world.txt");
|
||||
```
|
||||
|
||||
### Saving text
|
||||
|
||||
```js
|
||||
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
|
||||
saveAs(blob, "hello world.txt");
|
||||
FileSaver.saveAs(blob, "hello world.txt");
|
||||
```
|
||||
|
||||
The standard W3C File API [`Blob`][4] interface is not available in all browsers.
|
||||
@@ -99,7 +107,7 @@ But if you still want to change the name, then you can change it in the 2nd argu
|
||||
|
||||
```js
|
||||
var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
|
||||
saveAs(file);
|
||||
FileSaver.saveAs(file);
|
||||
```
|
||||
|
||||
|
||||
@@ -113,19 +121,6 @@ saveAs(file);
|
||||
[5]: https://github.com/eligrey/Blob.js
|
||||
[6]: https://github.com/eligrey/canvas-toBlob.js
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
The `FileSaver.js` distribution file is compiled with Uglify.js like so:
|
||||
|
||||
```bash
|
||||
uglifyjs FileSaver.js --mangle --comments /@source/ > FileSaver.min.js
|
||||
# or simply:
|
||||
npm run build
|
||||
```
|
||||
|
||||
Please make sure you build a production version before submitting a pull request.
|
||||
|
||||
Installation
|
||||
------------------
|
||||
|
||||
@@ -133,3 +128,9 @@ Installation
|
||||
npm install file-saver --save
|
||||
bower install file-saver
|
||||
```
|
||||
|
||||
Additionally, TypeScript definitions can be installed via:
|
||||
|
||||
```bash
|
||||
npm install @types/file-saver --save-dev
|
||||
```
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "file-saver",
|
||||
"main": "FileSaver.js",
|
||||
"version": "1.3.3",
|
||||
"main": "dist/FileSaver.js",
|
||||
"version": "1.3.7",
|
||||
"homepage": "https://github.com/eligrey/FileSaver.js",
|
||||
"authors": [
|
||||
"Eli Grey <[email protected]>"
|
||||
|
||||
Generated
+2783
File diff suppressed because it is too large
Load Diff
+14
-4
@@ -1,11 +1,18 @@
|
||||
{
|
||||
"name": "file-saver",
|
||||
"version": "1.3.3",
|
||||
"version": "1.3.7",
|
||||
"description": "An HTML5 saveAs() FileSaver implementation",
|
||||
"main": "FileSaver.js",
|
||||
"main": "dist/FileSaver.js",
|
||||
"module": "src/FileSaver.js",
|
||||
"files": [
|
||||
"dist/FileSaver.min.js"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 0",
|
||||
"build": "node_modules/.bin/uglifyjs FileSaver.js --mangle --comments /@source/ > FileSaver.min.js"
|
||||
"build:development": "mkdir -p dist && babel src/FileSaver.js --out-file=dist/FileSaver.js",
|
||||
"build:production": "NODE_ENV=production npm run build:development -- --out-file=dist/FileSaver.min.js",
|
||||
"build": "npm run build:development && npm run build:production",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -23,6 +30,9 @@
|
||||
},
|
||||
"homepage": "https://github.com/eligrey/FileSaver.js#readme",
|
||||
"devDependencies": {
|
||||
"uglify-js": "^2.6.2"
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-plugin-transform-es2015-modules-umd": "^6.24.1",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"babel-preset-minify": "^0.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* FileSaver.js
|
||||
* A saveAs() FileSaver implementation.
|
||||
* 1.3.2
|
||||
* 2016-06-16 18:25:19
|
||||
* 1.3.7
|
||||
* 2018-03-16 14:39:40
|
||||
*
|
||||
* By Eli Grey, http://eligrey.com
|
||||
* By Eli Grey, https://eligrey.com
|
||||
* License: MIT
|
||||
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
|
||||
*/
|
||||
@@ -11,9 +11,9 @@
|
||||
/*global self */
|
||||
/*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 */
|
||||
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/src/FileSaver.js */
|
||||
|
||||
var saveAs = saveAs || (function(view) {
|
||||
export default var saveAs = saveAs || (function(view) {
|
||||
"use strict";
|
||||
// IE <10 is explicitly unsupported
|
||||
if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
|
||||
@@ -33,8 +33,9 @@ var saveAs = saveAs || (function(view) {
|
||||
}
|
||||
, is_safari = /constructor/i.test(view.HTMLElement) || view.safari
|
||||
, is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
|
||||
, setImmediate = view.setImmediate || view.setTimeout
|
||||
, throw_outside = function(ex) {
|
||||
(view.setImmediate || view.setTimeout)(function() {
|
||||
setImmediate(function() {
|
||||
throw ex;
|
||||
}, 0);
|
||||
}
|
||||
@@ -125,14 +126,14 @@ var saveAs = saveAs || (function(view) {
|
||||
|
||||
if (can_use_save_link) {
|
||||
object_url = get_URL().createObjectURL(blob);
|
||||
setTimeout(function() {
|
||||
setImmediate(function() {
|
||||
save_link.href = object_url;
|
||||
save_link.download = name;
|
||||
click(save_link);
|
||||
dispatch_all();
|
||||
revoke(object_url);
|
||||
filesaver.readyState = filesaver.DONE;
|
||||
});
|
||||
}, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -143,6 +144,7 @@ var saveAs = saveAs || (function(view) {
|
||||
return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
|
||||
}
|
||||
;
|
||||
|
||||
// IE 10+ (native saveAs)
|
||||
if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
|
||||
return function(blob, name, no_auto_bom) {
|
||||
@@ -155,6 +157,8 @@ var saveAs = saveAs || (function(view) {
|
||||
};
|
||||
}
|
||||
|
||||
save_link.target = "_blank";
|
||||
|
||||
FS_proto.abort = function(){};
|
||||
FS_proto.readyState = FS_proto.INIT = 0;
|
||||
FS_proto.WRITING = 1;
|
||||
@@ -173,16 +177,5 @@ var saveAs = saveAs || (function(view) {
|
||||
}(
|
||||
typeof self !== "undefined" && self
|
||||
|| typeof window !== "undefined" && window
|
||||
|| this.content
|
||||
|| this
|
||||
));
|
||||
// `self` is undefined in Firefox for Android content script context
|
||||
// while `this` is nsIContentFrameMessageManager
|
||||
// with an attribute `content` that corresponds to the window
|
||||
|
||||
if (typeof module !== "undefined" && module.exports) {
|
||||
module.exports.saveAs = saveAs;
|
||||
} else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
|
||||
define("FileSaver.js", function() {
|
||||
return saveAs;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user