Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../js/dist
File: media-utils.js
[500] Fix | Delete
[501] Fix | Delete
[502] Fix | Delete
const noop = () => {};
[503] Fix | Delete
[504] Fix | Delete
/**
[505] Fix | Delete
* Browsers may use unexpected mime types, and they differ from browser to browser.
[506] Fix | Delete
* This function computes a flexible array of mime types from the mime type structured provided by the server.
[507] Fix | Delete
* Converts { jpg|jpeg|jpe: "image/jpeg" } into [ "image/jpeg", "image/jpg", "image/jpeg", "image/jpe" ]
[508] Fix | Delete
* The computation of this array instead of directly using the object,
[509] Fix | Delete
* solves the problem in chrome where mp3 files have audio/mp3 as mime type instead of audio/mpeg.
[510] Fix | Delete
* https://bugs.chromium.org/p/chromium/issues/detail?id=227004
[511] Fix | Delete
*
[512] Fix | Delete
* @param {?Object} wpMimeTypesObject Mime type object received from the server.
[513] Fix | Delete
* Extensions are keys separated by '|' and values are mime types associated with an extension.
[514] Fix | Delete
*
[515] Fix | Delete
* @return {?Array} An array of mime types or the parameter passed if it was "falsy".
[516] Fix | Delete
*/
[517] Fix | Delete
function getMimeTypesArray(wpMimeTypesObject) {
[518] Fix | Delete
if (!wpMimeTypesObject) {
[519] Fix | Delete
return wpMimeTypesObject;
[520] Fix | Delete
}
[521] Fix | Delete
return Object.entries(wpMimeTypesObject).map(([extensionsString, mime]) => {
[522] Fix | Delete
const [type] = mime.split('/');
[523] Fix | Delete
const extensions = extensionsString.split('|');
[524] Fix | Delete
return [mime, ...extensions.map(extension => `${type}/${extension}`)];
[525] Fix | Delete
}).flat();
[526] Fix | Delete
}
[527] Fix | Delete
[528] Fix | Delete
/**
[529] Fix | Delete
* Media Upload is used by audio, image, gallery, video, and file blocks to
[530] Fix | Delete
* handle uploading a media file when a file upload button is activated.
[531] Fix | Delete
*
[532] Fix | Delete
* TODO: future enhancement to add an upload indicator.
[533] Fix | Delete
*
[534] Fix | Delete
* @param {Object} $0 Parameters object passed to the function.
[535] Fix | Delete
* @param {?Array} $0.allowedTypes Array with the types of media that can be uploaded, if unset all types are allowed.
[536] Fix | Delete
* @param {?Object} $0.additionalData Additional data to include in the request.
[537] Fix | Delete
* @param {Array} $0.filesList List of files.
[538] Fix | Delete
* @param {?number} $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.
[539] Fix | Delete
* @param {Function} $0.onError Function called when an error happens.
[540] Fix | Delete
* @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.
[541] Fix | Delete
* @param {?Object} $0.wpAllowedMimeTypes List of allowed mime types and file extensions.
[542] Fix | Delete
*/
[543] Fix | Delete
async function uploadMedia({
[544] Fix | Delete
allowedTypes,
[545] Fix | Delete
additionalData = {},
[546] Fix | Delete
filesList,
[547] Fix | Delete
maxUploadFileSize,
[548] Fix | Delete
onError = noop,
[549] Fix | Delete
onFileChange,
[550] Fix | Delete
wpAllowedMimeTypes = null
[551] Fix | Delete
}) {
[552] Fix | Delete
// Cast filesList to array.
[553] Fix | Delete
const files = [...filesList];
[554] Fix | Delete
const filesSet = [];
[555] Fix | Delete
const setAndUpdateFiles = (idx, value) => {
[556] Fix | Delete
(0,external_wp_blob_namespaceObject.revokeBlobURL)(filesSet[idx]?.url);
[557] Fix | Delete
filesSet[idx] = value;
[558] Fix | Delete
onFileChange(filesSet.filter(Boolean));
[559] Fix | Delete
};
[560] Fix | Delete
[561] Fix | Delete
// Allowed type specified by consumer.
[562] Fix | Delete
const isAllowedType = fileType => {
[563] Fix | Delete
if (!allowedTypes) {
[564] Fix | Delete
return true;
[565] Fix | Delete
}
[566] Fix | Delete
return allowedTypes.some(allowedType => {
[567] Fix | Delete
// If a complete mimetype is specified verify if it matches exactly the mime type of the file.
[568] Fix | Delete
if (allowedType.includes('/')) {
[569] Fix | Delete
return allowedType === fileType;
[570] Fix | Delete
}
[571] Fix | Delete
// Otherwise a general mime type is used and we should verify if the file mimetype starts with it.
[572] Fix | Delete
return fileType.startsWith(`${allowedType}/`);
[573] Fix | Delete
});
[574] Fix | Delete
};
[575] Fix | Delete
[576] Fix | Delete
// Allowed types for the current WP_User.
[577] Fix | Delete
const allowedMimeTypesForUser = getMimeTypesArray(wpAllowedMimeTypes);
[578] Fix | Delete
const isAllowedMimeTypeForUser = fileType => {
[579] Fix | Delete
return allowedMimeTypesForUser.includes(fileType);
[580] Fix | Delete
};
[581] Fix | Delete
const validFiles = [];
[582] Fix | Delete
for (const mediaFile of files) {
[583] Fix | Delete
// Verify if user is allowed to upload this mime type.
[584] Fix | Delete
// Defer to the server when type not detected.
[585] Fix | Delete
if (allowedMimeTypesForUser && mediaFile.type && !isAllowedMimeTypeForUser(mediaFile.type)) {
[586] Fix | Delete
onError({
[587] Fix | Delete
code: 'MIME_TYPE_NOT_ALLOWED_FOR_USER',
[588] Fix | Delete
message: (0,external_wp_i18n_namespaceObject.sprintf)(
[589] Fix | Delete
// translators: %s: file name.
[590] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('%s: Sorry, you are not allowed to upload this file type.'), mediaFile.name),
[591] Fix | Delete
file: mediaFile
[592] Fix | Delete
});
[593] Fix | Delete
continue;
[594] Fix | Delete
}
[595] Fix | Delete
[596] Fix | Delete
// Check if the block supports this mime type.
[597] Fix | Delete
// Defer to the server when type not detected.
[598] Fix | Delete
if (mediaFile.type && !isAllowedType(mediaFile.type)) {
[599] Fix | Delete
onError({
[600] Fix | Delete
code: 'MIME_TYPE_NOT_SUPPORTED',
[601] Fix | Delete
message: (0,external_wp_i18n_namespaceObject.sprintf)(
[602] Fix | Delete
// translators: %s: file name.
[603] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('%s: Sorry, this file type is not supported here.'), mediaFile.name),
[604] Fix | Delete
file: mediaFile
[605] Fix | Delete
});
[606] Fix | Delete
continue;
[607] Fix | Delete
}
[608] Fix | Delete
[609] Fix | Delete
// Verify if file is greater than the maximum file upload size allowed for the site.
[610] Fix | Delete
if (maxUploadFileSize && mediaFile.size > maxUploadFileSize) {
[611] Fix | Delete
onError({
[612] Fix | Delete
code: 'SIZE_ABOVE_LIMIT',
[613] Fix | Delete
message: (0,external_wp_i18n_namespaceObject.sprintf)(
[614] Fix | Delete
// translators: %s: file name.
[615] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('%s: This file exceeds the maximum upload size for this site.'), mediaFile.name),
[616] Fix | Delete
file: mediaFile
[617] Fix | Delete
});
[618] Fix | Delete
continue;
[619] Fix | Delete
}
[620] Fix | Delete
[621] Fix | Delete
// Don't allow empty files to be uploaded.
[622] Fix | Delete
if (mediaFile.size <= 0) {
[623] Fix | Delete
onError({
[624] Fix | Delete
code: 'EMPTY_FILE',
[625] Fix | Delete
message: (0,external_wp_i18n_namespaceObject.sprintf)(
[626] Fix | Delete
// translators: %s: file name.
[627] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('%s: This file is empty.'), mediaFile.name),
[628] Fix | Delete
file: mediaFile
[629] Fix | Delete
});
[630] Fix | Delete
continue;
[631] Fix | Delete
}
[632] Fix | Delete
validFiles.push(mediaFile);
[633] Fix | Delete
[634] Fix | Delete
// Set temporary URL to create placeholder media file, this is replaced
[635] Fix | Delete
// with final file from media gallery when upload is `done` below.
[636] Fix | Delete
filesSet.push({
[637] Fix | Delete
url: (0,external_wp_blob_namespaceObject.createBlobURL)(mediaFile)
[638] Fix | Delete
});
[639] Fix | Delete
onFileChange(filesSet);
[640] Fix | Delete
}
[641] Fix | Delete
for (let idx = 0; idx < validFiles.length; ++idx) {
[642] Fix | Delete
const mediaFile = validFiles[idx];
[643] Fix | Delete
try {
[644] Fix | Delete
var _savedMedia$caption$r;
[645] Fix | Delete
const savedMedia = await createMediaFromFile(mediaFile, additionalData);
[646] Fix | Delete
// eslint-disable-next-line camelcase
[647] Fix | Delete
const {
[648] Fix | Delete
alt_text,
[649] Fix | Delete
source_url,
[650] Fix | Delete
...savedMediaProps
[651] Fix | Delete
} = savedMedia;
[652] Fix | Delete
const mediaObject = {
[653] Fix | Delete
...savedMediaProps,
[654] Fix | Delete
alt: savedMedia.alt_text,
[655] Fix | Delete
caption: (_savedMedia$caption$r = savedMedia.caption?.raw) !== null && _savedMedia$caption$r !== void 0 ? _savedMedia$caption$r : '',
[656] Fix | Delete
title: savedMedia.title.raw,
[657] Fix | Delete
url: savedMedia.source_url
[658] Fix | Delete
};
[659] Fix | Delete
setAndUpdateFiles(idx, mediaObject);
[660] Fix | Delete
} catch (error) {
[661] Fix | Delete
// Reset to empty on failure.
[662] Fix | Delete
setAndUpdateFiles(idx, null);
[663] Fix | Delete
let message;
[664] Fix | Delete
if (error.message) {
[665] Fix | Delete
message = error.message;
[666] Fix | Delete
} else {
[667] Fix | Delete
message = (0,external_wp_i18n_namespaceObject.sprintf)(
[668] Fix | Delete
// translators: %s: file name
[669] Fix | Delete
(0,external_wp_i18n_namespaceObject.__)('Error while uploading file %s to the media library.'), mediaFile.name);
[670] Fix | Delete
}
[671] Fix | Delete
onError({
[672] Fix | Delete
code: 'GENERAL',
[673] Fix | Delete
message,
[674] Fix | Delete
file: mediaFile
[675] Fix | Delete
});
[676] Fix | Delete
}
[677] Fix | Delete
}
[678] Fix | Delete
}
[679] Fix | Delete
[680] Fix | Delete
/**
[681] Fix | Delete
* @param {File} file Media File to Save.
[682] Fix | Delete
* @param {?Object} additionalData Additional data to include in the request.
[683] Fix | Delete
*
[684] Fix | Delete
* @return {Promise} Media Object Promise.
[685] Fix | Delete
*/
[686] Fix | Delete
function createMediaFromFile(file, additionalData) {
[687] Fix | Delete
// Create upload payload.
[688] Fix | Delete
const data = new window.FormData();
[689] Fix | Delete
data.append('file', file, file.name || file.type.replace('/', '.'));
[690] Fix | Delete
if (additionalData) {
[691] Fix | Delete
Object.entries(additionalData).forEach(([key, value]) => data.append(key, value));
[692] Fix | Delete
}
[693] Fix | Delete
return external_wp_apiFetch_default()({
[694] Fix | Delete
path: '/wp/v2/media',
[695] Fix | Delete
body: data,
[696] Fix | Delete
method: 'POST'
[697] Fix | Delete
});
[698] Fix | Delete
}
[699] Fix | Delete
[700] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/utils/index.js
[701] Fix | Delete
[702] Fix | Delete
[703] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/index.js
[704] Fix | Delete
[705] Fix | Delete
[706] Fix | Delete
[707] Fix | Delete
(window.wp = window.wp || {}).mediaUtils = __webpack_exports__;
[708] Fix | Delete
/******/ })()
[709] Fix | Delete
;
[710] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function