diff options
Diffstat (limited to 'wp-includes/js/dist/blob.js')
-rw-r--r-- | wp-includes/js/dist/blob.js | 72 |
1 files changed, 57 insertions, 15 deletions
diff --git a/wp-includes/js/dist/blob.js b/wp-includes/js/dist/blob.js index ae44e99..a5b09b8 100644 --- a/wp-includes/js/dist/blob.js +++ b/wp-includes/js/dist/blob.js @@ -1,46 +1,47 @@ -/******/ (function() { // webpackBootstrap +/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ -/******/ !function() { +/******/ (() => { /******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { +/******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; -/******/ }(); +/******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ -/******/ !function() { +/******/ (() => { /******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { +/******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; -/******/ }(); +/******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ createBlobURL: function() { return /* binding */ createBlobURL; }, -/* harmony export */ getBlobByURL: function() { return /* binding */ getBlobByURL; }, -/* harmony export */ getBlobTypeByURL: function() { return /* binding */ getBlobTypeByURL; }, -/* harmony export */ isBlobURL: function() { return /* binding */ isBlobURL; }, -/* harmony export */ revokeBlobURL: function() { return /* binding */ revokeBlobURL; } +/* harmony export */ createBlobURL: () => (/* binding */ createBlobURL), +/* harmony export */ downloadBlob: () => (/* binding */ downloadBlob), +/* harmony export */ getBlobByURL: () => (/* binding */ getBlobByURL), +/* harmony export */ getBlobTypeByURL: () => (/* binding */ getBlobTypeByURL), +/* harmony export */ isBlobURL: () => (/* binding */ isBlobURL), +/* harmony export */ revokeBlobURL: () => (/* binding */ revokeBlobURL) /* harmony export */ }); /** * @type {Record<string, File|undefined>} @@ -112,6 +113,47 @@ function isBlobURL(url) { return url.indexOf('blob:') === 0; } +/** + * Downloads a file, e.g., a text or readable stream, in the browser. + * Appropriate for downloading smaller file sizes, e.g., < 5 MB. + * + * Example usage: + * + * ```js + * const fileContent = JSON.stringify( + * { + * "title": "My Post", + * }, + * null, + * 2 + * ); + * const filename = 'file.json'; + * + * downloadBlob( filename, fileContent, 'application/json' ); + * ``` + * + * @param {string} filename File name. + * @param {BlobPart} content File content (BufferSource | Blob | string). + * @param {string} contentType (Optional) File mime type. Default is `''`. + */ +function downloadBlob(filename, content, contentType = '') { + if (!filename || !content) { + return; + } + const file = new window.Blob([content], { + type: contentType + }); + const url = window.URL.createObjectURL(file); + const anchorElement = document.createElement('a'); + anchorElement.href = url; + anchorElement.download = filename; + anchorElement.style.display = 'none'; + document.body.appendChild(anchorElement); + anchorElement.click(); + document.body.removeChild(anchorElement); + window.URL.revokeObjectURL(url); +} + (window.wp = window.wp || {}).blob = __webpack_exports__; /******/ })() ;
\ No newline at end of file |