UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

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