const waitImgLoaded = async (root) => {
    const imgs = root instanceof HTMLImageElement ? [root] : root.querySelectorAll('img');

    return await Promise.all(
        imgs.map(img=> (
            new Promise(resolve=>(
                img.addEventListener('load',()=> resolve(img))
            ))
        )
    ))
}