| /** |
| * @licstart The following is the entire license notice for the |
| * Javascript code in this page |
| * |
| * Copyright 2020 Mozilla Foundation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * @licend The above is the entire license notice for the |
| * Javascript code in this page |
| */ |
| "use strict"; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| exports.DownloadManager = void 0; |
| |
| var _pdf = require("../pdf"); |
| |
| var _viewer_compatibility = require("./viewer_compatibility.js"); |
| |
| ; |
| |
| function download(blobUrl, filename) { |
| const a = document.createElement("a"); |
| |
| if (!a.click) { |
| throw new Error('DownloadManager: "a.click()" is not supported.'); |
| } |
| |
| a.href = blobUrl; |
| a.target = "_parent"; |
| |
| if ("download" in a) { |
| a.download = filename; |
| } |
| |
| (document.body || document.documentElement).appendChild(a); |
| a.click(); |
| a.remove(); |
| } |
| |
| class DownloadManager { |
| downloadUrl(url, filename) { |
| if (!(0, _pdf.createValidAbsoluteUrl)(url, "http://example.com")) { |
| return; |
| } |
| |
| download(url + "#pdfjs.action=download", filename); |
| } |
| |
| downloadData(data, filename, contentType) { |
| if (navigator.msSaveBlob) { |
| navigator.msSaveBlob(new Blob([data], { |
| type: contentType |
| }), filename); |
| return; |
| } |
| |
| const blobUrl = (0, _pdf.createObjectURL)(data, contentType, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL); |
| download(blobUrl, filename); |
| } |
| |
| download(blob, url, filename, sourceEventType = "download") { |
| if (navigator.msSaveBlob) { |
| if (!navigator.msSaveBlob(blob, filename)) { |
| this.downloadUrl(url, filename); |
| } |
| |
| return; |
| } |
| |
| if (_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { |
| this.downloadUrl(url, filename); |
| return; |
| } |
| |
| const blobUrl = URL.createObjectURL(blob); |
| download(blobUrl, filename); |
| } |
| |
| } |
| |
| exports.DownloadManager = DownloadManager; |