UNPKG

@wordpress/block-library

Version:
95 lines (77 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getImageSizeAttributes = getImageSizeAttributes; exports.getUpdatedLinkTargetSettings = getUpdatedLinkTargetSettings; exports.removeNewTabRel = removeNewTabRel; var _lodash = require("lodash"); var _constants = require("./constants"); /** * External dependencies */ /** * Internal dependencies */ function removeNewTabRel(currentRel) { let newRel = currentRel; if (currentRel !== undefined && !(0, _lodash.isEmpty)(newRel)) { if (!(0, _lodash.isEmpty)(newRel)) { _constants.NEW_TAB_REL.forEach(relVal => { const regExp = new RegExp('\\b' + relVal + '\\b', 'gi'); newRel = newRel.replace(regExp, ''); }); // Only trim if NEW_TAB_REL values was replaced. if (newRel !== currentRel) { newRel = newRel.trim(); } if ((0, _lodash.isEmpty)(newRel)) { newRel = undefined; } } } return newRel; } /** * Helper to get the link target settings to be stored. * * @param {boolean} value The new link target value. * @param {Object} attributes Block attributes. * @param {Object} attributes.rel Image block's rel attribute. * * @return {Object} Updated link target settings. */ function getUpdatedLinkTargetSettings(value, _ref) { let { rel } = _ref; const linkTarget = value ? '_blank' : undefined; let updatedRel; if (!linkTarget && !rel) { updatedRel = undefined; } else { updatedRel = removeNewTabRel(rel); } return { linkTarget, rel: updatedRel }; } /** * Determines new Image block attributes size selection. * * @param {Object} image Media file object for gallery image. * @param {string} size Selected size slug to apply. */ function getImageSizeAttributes(image, size) { const url = (0, _lodash.get)(image, ['media_details', 'sizes', size, 'source_url']); if (url) { return { url, width: undefined, height: undefined, sizeSlug: size }; } return {}; } //# sourceMappingURL=utils.js.map