| Current Path : /home/rtorresani/www/vendor/magento/module-page-builder/view/adminhtml/web/ts/js/utils/ |
| Current File : //home/rtorresani/www/vendor/magento/module-page-builder/view/adminhtml/web/ts/js/utils/image.ts |
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
import Config from "../config";
import {toDataUrl} from "./directives";
import {convertUrlToPathIfOtherUrlIsOnlyAPath} from "./url";
/**
* Decode image background URL to object
*
* @param value
* @returns {Object}
* @api
*/
export function decodeUrl(value: string): string | [object] {
let result: any = "";
value = decodeURIComponent((value).replace(window.location.href, ""));
const regexp = /{{.*\s*url="?(.*\.([a-z|A-Z]*))"?\s*}}/;
if (regexp.test(value)) {
const [, url, type] = regexp.exec(value);
const image = {
name: url.split("/").pop(),
size: 0,
type: "image/" + type,
url: Config.getConfig("media_url") + url,
};
result = [image];
}
return result;
}
/**
* Convert a URL to an image directive
*
* @param {string} imageUrl
* @returns {string}
*/
export function urlToDirective(imageUrl: string) {
const mediaUrl = convertUrlToPathIfOtherUrlIsOnlyAPath(Config.getConfig("media_url"), imageUrl);
const mediaPath = imageUrl.split(mediaUrl);
return "{{media url=" + mediaPath[1] + "}}";
}
/**
* Convert an image URL to a background image data uri
*
* @param {string} imageUrl
* @returns {string}
*/
export function imageToBackgroundImageDataUrl(imageUrl: string) {
return "url(\'" + toDataUrl(urlToDirective(imageUrl)) + "\')";
}