// Recalculate image size if parent is <picture>
document.addEventListener( 'lazybeforesizes', ( e ) => {
	// for some reason sometimes e.detail is undefined, so we need to check it.
	if ( ! e.detail || ! e.detail.width || ! e.target ) {
		return;
	}

	const parent = e.target.closest( ':not(picture)' );

	if ( parent ) {
		e.detail.width = parent.clientWidth || e.detail.width;
	}
} );

/**
 * Remove <noscript> tag.
 * Some of optimization plugin make something, that killed our styles with noscript tag.
 * Related topic: https://wordpress.org/support/topic/visual-portfolio-and-sg-optimizer-dont-play-well/
 */
document.addEventListener( 'lazybeforeunveil', ( e ) => {
	const prevEl = e.target.previousElementSibling;

	if ( prevEl && prevEl.matches( 'noscript' ) ) {
		prevEl.remove();
	}
} );
