I was just going through code change, and I would suggest one small change.
In the image_mapper.js, export it as default, as it will have only one export. Then you can use it as imageMapper.default rather than imageMapper.imageMapper.
Otherwise, looks fine to me. I didn't test though :P
Embedding images using .toDataURL() method hits the performance of the explain plan rendering if the plan is complex because first it downloads the images then it will convert each images into base64, to improve the performance we will embed the images only when downloading of SVG is called and not when displaying the graphical plan.