@concord-consortium/cloud-file-manager 2.1.0-pre.14 → 2.1.0-pre.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/client.js +2 -1
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/providers/provider-interface.js +1 -1
- package/dist/cjs/utils/ios-file-saver.d.ts +42 -0
- package/dist/cjs/utils/ios-file-saver.js +98 -0
- package/dist/cjs/utils/ios-file-saver.js.map +1 -0
- package/dist/cjs/views/local-file-tab-save-view.js +45 -24
- package/dist/cjs/views/local-file-tab-save-view.js.map +1 -1
- package/dist/esm/client.js +2 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/providers/provider-interface.js +1 -1
- package/dist/esm/utils/ios-file-saver.d.ts +42 -0
- package/dist/esm/utils/ios-file-saver.js +91 -0
- package/dist/esm/utils/ios-file-saver.js.map +1 -0
- package/dist/esm/views/local-file-tab-save-view.js +45 -24
- package/dist/esm/views/local-file-tab-save-view.js.map +1 -1
- package/dist/examples/index.html +1 -0
- package/dist/examples/local-json-save.html +36 -0
- package/dist/index.html +1 -1
- package/dist/js/app.js +1 -1
- package/dist/js/app.js.LICENSE.txt +0 -2
- package/dist/js/app.js.map +1 -1
- package/package.json +5 -3
- package/dist/cjs/lib/file-saver.d.ts +0 -2
- package/dist/cjs/lib/file-saver.js +0 -164
- package/dist/cjs/lib/file-saver.js.map +0 -1
- package/dist/esm/lib/file-saver.d.ts +0 -2
- package/dist/esm/lib/file-saver.js +0 -164
- package/dist/esm/lib/file-saver.js.map +0 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@concord-consortium/cloud-file-manager",
|
|
3
3
|
"description": "Wrapper for providing file management for web applications",
|
|
4
4
|
"author": "The Concord Consortium",
|
|
5
|
-
"version": "2.1.0-pre.
|
|
5
|
+
"version": "2.1.0-pre.16",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/concord-consortium/cloud-file-manager.git"
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"classnames": "^2.4.0",
|
|
28
28
|
"create-react-class": "^15.7.0",
|
|
29
29
|
"diff": "^5.1.0",
|
|
30
|
+
"file-saver": "^2.0.5",
|
|
30
31
|
"iframe-phone": "^1.3.1",
|
|
31
32
|
"jiff": "^0.7.3",
|
|
32
33
|
"jquery": "^3.7.1",
|
|
@@ -45,6 +46,7 @@
|
|
|
45
46
|
"@testing-library/react": "^12.1.5",
|
|
46
47
|
"@testing-library/user-event": "^14.5.1",
|
|
47
48
|
"@types/create-react-class": "^15.6.6",
|
|
49
|
+
"@types/file-saver": "^2.0.7",
|
|
48
50
|
"@types/jest": "^29.5.11",
|
|
49
51
|
"@types/jiff": "^0.7.5",
|
|
50
52
|
"@types/jquery": "^3.5.29",
|
|
@@ -102,8 +104,8 @@
|
|
|
102
104
|
"build:codap": "npm run clean && cross-env-shell NODE_ENV=production dest=../codap/apps/dg/resources/cloud-file-manager codap=1 noGlobals=1 noMap=1 'webpack && mv $dest/js/app.js $dest/js/app.js.ignore'",
|
|
103
105
|
"build:codap:development": "npm run clean && cross-env-shell NODE_ENV=development dest=../codap/apps/dg/resources/cloud-file-manager codap=1 noGlobals=1 noMap=1 'webpack && mv $dest/js/app.js $dest/js/app.js.ignore'",
|
|
104
106
|
"prepublishOnly": "npm run build:all",
|
|
105
|
-
"publish:npm:latest": "npm publish --access public",
|
|
106
|
-
"publish:npm:latest:preview": "npm publish --access public --dry-run",
|
|
107
|
+
"publish:npm:latest": "npm publish --access public --tag latest",
|
|
108
|
+
"publish:npm:latest:preview": "npm publish --access public --tag latest --dry-run",
|
|
107
109
|
"publish:npm:next": "npm publish --access public --tag next",
|
|
108
110
|
"publish:npm:next:preview": "npm publish --access public --tag next --dry-run",
|
|
109
111
|
"yalc:publish": "npx yalc publish --push",
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/* FileSaver.js
|
|
2
|
-
* A saveAs() FileSaver implementation.
|
|
3
|
-
* 1.3.2
|
|
4
|
-
* 2016-06-16 18:25:19
|
|
5
|
-
*
|
|
6
|
-
* By Eli Grey, http://eligrey.com
|
|
7
|
-
* License: MIT
|
|
8
|
-
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
|
|
9
|
-
*/
|
|
10
|
-
/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
|
|
11
|
-
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
|
|
12
|
-
var saveAs = saveAs || (function (view) {
|
|
13
|
-
"use strict";
|
|
14
|
-
// IE <10 is explicitly unsupported
|
|
15
|
-
if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
var doc = view.document
|
|
19
|
-
// only get URL when necessary in case Blob.js hasn't overridden it yet
|
|
20
|
-
, get_URL = function () {
|
|
21
|
-
return view.URL || view.webkitURL || view;
|
|
22
|
-
}, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a"), can_use_save_link = "download" in save_link, click = function (node) {
|
|
23
|
-
var event = new MouseEvent("click");
|
|
24
|
-
node.dispatchEvent(event);
|
|
25
|
-
}, is_safari = /constructor/i.test(view.HTMLElement) || view.safari, is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), throw_outside = function (ex) {
|
|
26
|
-
(view.setImmediate || view.setTimeout)(function () {
|
|
27
|
-
throw ex;
|
|
28
|
-
}, 0);
|
|
29
|
-
}
|
|
30
|
-
// the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
|
|
31
|
-
, arbitrary_revoke_timeout = 1000 * 40 // in ms
|
|
32
|
-
, revoke = function (file) {
|
|
33
|
-
var revoker = function () {
|
|
34
|
-
if (typeof file === "string") { // file is an object URL
|
|
35
|
-
get_URL().revokeObjectURL(file);
|
|
36
|
-
}
|
|
37
|
-
else { // file is a File
|
|
38
|
-
file.remove();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
setTimeout(revoker, arbitrary_revoke_timeout);
|
|
42
|
-
}, dispatch = function (filesaver, event_types, event) {
|
|
43
|
-
event_types = [].concat(event_types);
|
|
44
|
-
var i = event_types.length;
|
|
45
|
-
while (i--) {
|
|
46
|
-
var listener = filesaver["on" + event_types[i]];
|
|
47
|
-
if (typeof listener === "function") {
|
|
48
|
-
try {
|
|
49
|
-
listener.call(filesaver, event || filesaver);
|
|
50
|
-
}
|
|
51
|
-
catch (ex) {
|
|
52
|
-
throw_outside(ex);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}, auto_bom = function (blob) {
|
|
57
|
-
// prepend BOM for UTF-8 XML and text/* types (including HTML)
|
|
58
|
-
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
|
|
59
|
-
if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
|
|
60
|
-
return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type });
|
|
61
|
-
}
|
|
62
|
-
return blob;
|
|
63
|
-
}, FileSaver = function (blob, name, no_auto_bom) {
|
|
64
|
-
if (!no_auto_bom) {
|
|
65
|
-
blob = auto_bom(blob);
|
|
66
|
-
}
|
|
67
|
-
// First try a.download, then web filesystem, then object URLs
|
|
68
|
-
var filesaver = this, force = true // [CC 2016-12-05] type === force_saveable_type
|
|
69
|
-
, object_url, dispatch_all = function () {
|
|
70
|
-
dispatch(filesaver, "writestart progress write writeend".split(" "));
|
|
71
|
-
}
|
|
72
|
-
// on any filesys errors revert to saving with object URLs
|
|
73
|
-
, fs_error = function () {
|
|
74
|
-
if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
|
|
75
|
-
// Safari doesn't allow downloading of blob urls
|
|
76
|
-
var reader = new FileReader();
|
|
77
|
-
reader.onloadend = function () {
|
|
78
|
-
var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
|
|
79
|
-
var popup = view.open(url, '_blank');
|
|
80
|
-
if (!popup)
|
|
81
|
-
view.location.href = url;
|
|
82
|
-
url = undefined; // release reference before dispatching
|
|
83
|
-
filesaver.readyState = filesaver.DONE;
|
|
84
|
-
dispatch_all();
|
|
85
|
-
};
|
|
86
|
-
reader.readAsDataURL(blob);
|
|
87
|
-
filesaver.readyState = filesaver.INIT;
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
// don't create more object URLs than needed
|
|
91
|
-
if (!object_url) {
|
|
92
|
-
object_url = get_URL().createObjectURL(blob);
|
|
93
|
-
}
|
|
94
|
-
if (force) {
|
|
95
|
-
view.location.href = object_url;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
var opened = view.open(object_url, "_blank");
|
|
99
|
-
if (!opened) {
|
|
100
|
-
// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
|
|
101
|
-
view.location.href = object_url;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
filesaver.readyState = filesaver.DONE;
|
|
105
|
-
dispatch_all();
|
|
106
|
-
revoke(object_url);
|
|
107
|
-
};
|
|
108
|
-
filesaver.readyState = filesaver.INIT;
|
|
109
|
-
if (can_use_save_link) {
|
|
110
|
-
object_url = get_URL().createObjectURL(blob);
|
|
111
|
-
setTimeout(function () {
|
|
112
|
-
save_link.href = object_url;
|
|
113
|
-
save_link.download = name;
|
|
114
|
-
click(save_link);
|
|
115
|
-
dispatch_all();
|
|
116
|
-
revoke(object_url);
|
|
117
|
-
filesaver.readyState = filesaver.DONE;
|
|
118
|
-
});
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
fs_error();
|
|
122
|
-
}, FS_proto = FileSaver.prototype, saveAs = function (blob, name, no_auto_bom) {
|
|
123
|
-
return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
|
|
124
|
-
};
|
|
125
|
-
// IE 10+ (native saveAs)
|
|
126
|
-
if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
|
|
127
|
-
return function (blob, name, no_auto_bom) {
|
|
128
|
-
name = name || blob.name || "download";
|
|
129
|
-
if (!no_auto_bom) {
|
|
130
|
-
blob = auto_bom(blob);
|
|
131
|
-
}
|
|
132
|
-
return navigator.msSaveOrOpenBlob(blob, name);
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
FS_proto.abort = function () { };
|
|
136
|
-
FS_proto.readyState = FS_proto.INIT = 0;
|
|
137
|
-
FS_proto.WRITING = 1;
|
|
138
|
-
FS_proto.DONE = 2;
|
|
139
|
-
FS_proto.error =
|
|
140
|
-
FS_proto.onwritestart =
|
|
141
|
-
FS_proto.onprogress =
|
|
142
|
-
FS_proto.onwrite =
|
|
143
|
-
FS_proto.onabort =
|
|
144
|
-
FS_proto.onerror =
|
|
145
|
-
FS_proto.onwriteend =
|
|
146
|
-
null;
|
|
147
|
-
return saveAs;
|
|
148
|
-
}(typeof self !== "undefined" && self
|
|
149
|
-
|| typeof window !== "undefined" && window
|
|
150
|
-
// eslint-disable-next-line babel/no-invalid-this
|
|
151
|
-
|| this.content // TODO: What do we think `this` is here? ¯\_(ツ)_/¯
|
|
152
|
-
));
|
|
153
|
-
// `self` is undefined in Firefox for Android content script context
|
|
154
|
-
// while `this` is nsIContentFrameMessageManager
|
|
155
|
-
// with an attribute `content` that corresponds to the window
|
|
156
|
-
if (typeof module !== "undefined" && module.exports) {
|
|
157
|
-
module.exports.saveAs = saveAs;
|
|
158
|
-
}
|
|
159
|
-
else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
|
|
160
|
-
define("FileSaver.js", function () {
|
|
161
|
-
return saveAs;
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=file-saver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-saver.js","sourceRoot":"","sources":["../../../src/code/lib/file-saver.js"],"names":[],"mappings":"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"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/* FileSaver.js
|
|
2
|
-
* A saveAs() FileSaver implementation.
|
|
3
|
-
* 1.3.2
|
|
4
|
-
* 2016-06-16 18:25:19
|
|
5
|
-
*
|
|
6
|
-
* By Eli Grey, http://eligrey.com
|
|
7
|
-
* License: MIT
|
|
8
|
-
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
|
|
9
|
-
*/
|
|
10
|
-
/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
|
|
11
|
-
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
|
|
12
|
-
var saveAs = saveAs || (function (view) {
|
|
13
|
-
"use strict";
|
|
14
|
-
// IE <10 is explicitly unsupported
|
|
15
|
-
if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
var doc = view.document
|
|
19
|
-
// only get URL when necessary in case Blob.js hasn't overridden it yet
|
|
20
|
-
, get_URL = function () {
|
|
21
|
-
return view.URL || view.webkitURL || view;
|
|
22
|
-
}, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a"), can_use_save_link = "download" in save_link, click = function (node) {
|
|
23
|
-
var event = new MouseEvent("click");
|
|
24
|
-
node.dispatchEvent(event);
|
|
25
|
-
}, is_safari = /constructor/i.test(view.HTMLElement) || view.safari, is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), throw_outside = function (ex) {
|
|
26
|
-
(view.setImmediate || view.setTimeout)(function () {
|
|
27
|
-
throw ex;
|
|
28
|
-
}, 0);
|
|
29
|
-
}
|
|
30
|
-
// the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
|
|
31
|
-
, arbitrary_revoke_timeout = 1000 * 40 // in ms
|
|
32
|
-
, revoke = function (file) {
|
|
33
|
-
var revoker = function () {
|
|
34
|
-
if (typeof file === "string") { // file is an object URL
|
|
35
|
-
get_URL().revokeObjectURL(file);
|
|
36
|
-
}
|
|
37
|
-
else { // file is a File
|
|
38
|
-
file.remove();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
setTimeout(revoker, arbitrary_revoke_timeout);
|
|
42
|
-
}, dispatch = function (filesaver, event_types, event) {
|
|
43
|
-
event_types = [].concat(event_types);
|
|
44
|
-
var i = event_types.length;
|
|
45
|
-
while (i--) {
|
|
46
|
-
var listener = filesaver["on" + event_types[i]];
|
|
47
|
-
if (typeof listener === "function") {
|
|
48
|
-
try {
|
|
49
|
-
listener.call(filesaver, event || filesaver);
|
|
50
|
-
}
|
|
51
|
-
catch (ex) {
|
|
52
|
-
throw_outside(ex);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}, auto_bom = function (blob) {
|
|
57
|
-
// prepend BOM for UTF-8 XML and text/* types (including HTML)
|
|
58
|
-
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
|
|
59
|
-
if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
|
|
60
|
-
return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type });
|
|
61
|
-
}
|
|
62
|
-
return blob;
|
|
63
|
-
}, FileSaver = function (blob, name, no_auto_bom) {
|
|
64
|
-
if (!no_auto_bom) {
|
|
65
|
-
blob = auto_bom(blob);
|
|
66
|
-
}
|
|
67
|
-
// First try a.download, then web filesystem, then object URLs
|
|
68
|
-
var filesaver = this, force = true // [CC 2016-12-05] type === force_saveable_type
|
|
69
|
-
, object_url, dispatch_all = function () {
|
|
70
|
-
dispatch(filesaver, "writestart progress write writeend".split(" "));
|
|
71
|
-
}
|
|
72
|
-
// on any filesys errors revert to saving with object URLs
|
|
73
|
-
, fs_error = function () {
|
|
74
|
-
if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
|
|
75
|
-
// Safari doesn't allow downloading of blob urls
|
|
76
|
-
var reader = new FileReader();
|
|
77
|
-
reader.onloadend = function () {
|
|
78
|
-
var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
|
|
79
|
-
var popup = view.open(url, '_blank');
|
|
80
|
-
if (!popup)
|
|
81
|
-
view.location.href = url;
|
|
82
|
-
url = undefined; // release reference before dispatching
|
|
83
|
-
filesaver.readyState = filesaver.DONE;
|
|
84
|
-
dispatch_all();
|
|
85
|
-
};
|
|
86
|
-
reader.readAsDataURL(blob);
|
|
87
|
-
filesaver.readyState = filesaver.INIT;
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
// don't create more object URLs than needed
|
|
91
|
-
if (!object_url) {
|
|
92
|
-
object_url = get_URL().createObjectURL(blob);
|
|
93
|
-
}
|
|
94
|
-
if (force) {
|
|
95
|
-
view.location.href = object_url;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
var opened = view.open(object_url, "_blank");
|
|
99
|
-
if (!opened) {
|
|
100
|
-
// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
|
|
101
|
-
view.location.href = object_url;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
filesaver.readyState = filesaver.DONE;
|
|
105
|
-
dispatch_all();
|
|
106
|
-
revoke(object_url);
|
|
107
|
-
};
|
|
108
|
-
filesaver.readyState = filesaver.INIT;
|
|
109
|
-
if (can_use_save_link) {
|
|
110
|
-
object_url = get_URL().createObjectURL(blob);
|
|
111
|
-
setTimeout(function () {
|
|
112
|
-
save_link.href = object_url;
|
|
113
|
-
save_link.download = name;
|
|
114
|
-
click(save_link);
|
|
115
|
-
dispatch_all();
|
|
116
|
-
revoke(object_url);
|
|
117
|
-
filesaver.readyState = filesaver.DONE;
|
|
118
|
-
});
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
fs_error();
|
|
122
|
-
}, FS_proto = FileSaver.prototype, saveAs = function (blob, name, no_auto_bom) {
|
|
123
|
-
return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
|
|
124
|
-
};
|
|
125
|
-
// IE 10+ (native saveAs)
|
|
126
|
-
if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
|
|
127
|
-
return function (blob, name, no_auto_bom) {
|
|
128
|
-
name = name || blob.name || "download";
|
|
129
|
-
if (!no_auto_bom) {
|
|
130
|
-
blob = auto_bom(blob);
|
|
131
|
-
}
|
|
132
|
-
return navigator.msSaveOrOpenBlob(blob, name);
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
FS_proto.abort = function () { };
|
|
136
|
-
FS_proto.readyState = FS_proto.INIT = 0;
|
|
137
|
-
FS_proto.WRITING = 1;
|
|
138
|
-
FS_proto.DONE = 2;
|
|
139
|
-
FS_proto.error =
|
|
140
|
-
FS_proto.onwritestart =
|
|
141
|
-
FS_proto.onprogress =
|
|
142
|
-
FS_proto.onwrite =
|
|
143
|
-
FS_proto.onabort =
|
|
144
|
-
FS_proto.onerror =
|
|
145
|
-
FS_proto.onwriteend =
|
|
146
|
-
null;
|
|
147
|
-
return saveAs;
|
|
148
|
-
}(typeof self !== "undefined" && self
|
|
149
|
-
|| typeof window !== "undefined" && window
|
|
150
|
-
// eslint-disable-next-line babel/no-invalid-this
|
|
151
|
-
|| this.content // TODO: What do we think `this` is here? ¯\_(ツ)_/¯
|
|
152
|
-
));
|
|
153
|
-
// `self` is undefined in Firefox for Android content script context
|
|
154
|
-
// while `this` is nsIContentFrameMessageManager
|
|
155
|
-
// with an attribute `content` that corresponds to the window
|
|
156
|
-
if (typeof module !== "undefined" && module.exports) {
|
|
157
|
-
module.exports.saveAs = saveAs;
|
|
158
|
-
}
|
|
159
|
-
else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
|
|
160
|
-
define("FileSaver.js", function () {
|
|
161
|
-
return saveAs;
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=file-saver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-saver.js","sourceRoot":"","sources":["../../../src/code/lib/file-saver.js"],"names":[],"mappings":"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"}
|