This commit is contained in:
Hanson.xyz Dev
2026-01-04 17:50:08 -06:00
parent 7e45ce0756
commit acc8ac87a0
4131 changed files with 232562 additions and 250244 deletions
+7 -75
View File
@@ -43,115 +43,47 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ isBlobURL: () => (/* binding */ isBlobURL),
/* harmony export */ revokeBlobURL: () => (/* binding */ revokeBlobURL)
/* harmony export */ });
/* wp:polyfill */
const cache = {};
/**
* Create a blob URL from a file.
*
* @param file The file to create a blob URL for.
*
* @return The blob URL.
*/
function createBlobURL(file) {
const url = window.URL.createObjectURL(file);
cache[url] = file;
return url;
}
/**
* Retrieve a file based on a blob URL. The file must have been created by
* `createBlobURL` and not removed by `revokeBlobURL`, otherwise it will return
* `undefined`.
*
* @param url The blob URL.
*
* @return The file for the blob URL.
*/
function getBlobByURL(url) {
return cache[url];
}
/**
* Retrieve a blob type based on URL. The file must have been created by
* `createBlobURL` and not removed by `revokeBlobURL`, otherwise it will return
* `undefined`.
*
* @param url The blob URL.
*
* @return The blob type.
*/
function getBlobTypeByURL(url) {
return getBlobByURL(url)?.type.split('/')[0]; // 0: media type , 1: file extension eg ( type: 'image/jpeg' ).
return getBlobByURL(url)?.type.split("/")[0];
}
/**
* Remove the resource and file cache from memory.
*
* @param url The blob URL.
*/
function revokeBlobURL(url) {
if (cache[url]) {
window.URL.revokeObjectURL(url);
}
delete cache[url];
}
/**
* Check whether a url is a blob url.
*
* @param url The URL.
*
* @return Is the url a blob url?
*/
function isBlobURL(url) {
if (!url || !url.indexOf) {
return false;
}
return url.indexOf('blob:') === 0;
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 filename File name.
* @param content File content (BufferSource | Blob | string).
* @param contentType (Optional) File mime type. Default is `''`.
*/
function downloadBlob(filename, content, contentType = '') {
function downloadBlob(filename, content, contentType = "") {
if (!filename || !content) {
return;
}
const file = new window.Blob([content], {
type: contentType
});
const file = new window.Blob([content], { type: contentType });
const url = window.URL.createObjectURL(file);
const anchorElement = document.createElement('a');
const anchorElement = document.createElement("a");
anchorElement.href = url;
anchorElement.download = filename;
anchorElement.style.display = 'none';
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__;
/******/ })()
;