UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) • 1.25 kB
import{circleCanvasCssSize as l,createArrowCurrentCanvas as v,createCircleCanvas as w,createCurrentCanvas as u,createImageCanvas as h,createTargetCanvas as A,cssSizeOf as T}from"../../components/Map/drawing/config/canvases";const R="#00A2FF",F="#FF9F06",r=34,d=4,p=56;function a(s,n,t,i,C,e){const c=s.get(n);return c?(c.id=n,h(c,t,i,C)):e()}function o(s,n=T(s)){return{canvas:s,width:n.width,height:n.height}}export function createCanvasIconProvider(s){const{iconMap:n,pixelRatio:t}=s,i=s.sourceColor??R,C=s.destinationColor??F,e=new Map;e.set("destination",o(a(n,"destination",r,r,t,()=>A(t,C)))),e.set("source",o(a(n,"departure",r,r,t,()=>u(t,i)))),e.set("source_inactive",o(a(n,"departure_inactive",r,r,t,()=>u(t,i))));const c=u(t,i);c.id="current-location",e.set("current",o(c));const _=a(n,"transition",r,r,t,()=>u(t,i));return e.set("transition",o(_)),e.set("transition_up",o(a(n,"transition_up",p,r,t,()=>_))),e.set("transition_down",o(a(n,"transition_down",p,r,t,()=>_))),e.set("transition_entry",o(a(n,"departure",r,r,t,()=>u(t,i)))),e.set("current_arrow",o(a(n,"direction",r,r,t,()=>v(t,i)))),e.set("trail",o(w(d,"#b5b7bc"),{width:l(d),height:l(d)})),{getIcon(I){const O=e.get(I);if(!O)throw new Error(`Unknown icon: ${I}`);return O}}}