@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 665 B
JavaScript
import{Box as u,degToRad as c,Rect as d}from"@expofp/geometry";import{loadBlob as f}from"./loadBlob";import{isSvgBlob as b,svgToPngBlob as m}from"./rasterize-svg";export async function loadLayerImages(r){const t=new Map,a=o=>{let n=t.get(o);return n||(n=g(o),t.set(o,n)),n};return(await Promise.all(r.map(async o=>{const n=o.getAttribute("xlink:href")??o.getAttribute("href"),l=n?await a(n):null;if(!l)return null;const e=u.fromSvg(o),s=o.transform?.animVal[0]?.angle??0,i=parseFloat(o.dataset.elev??"")||0;return{bounds:d.fromMinMax(e.min,e.max,c(s),i),source:l,booth:null}}))).filter(o=>o!==null)}async function g(r){const t=await f(r);return t?b(t)?m(t):t:null}