UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) 1.16 kB
import{LANGUAGE_TYPE as t}from"../constants";export function mapEntity(n){switch(n.entity.type){case"booth":return{id:n.id,name:e(n.name),externalId:e(n.externalId),isSpecial:n.entity.variant==="special",exhibitors:r(n.exhibitors),layer:{name:e(n.layer?.name),description:e(n.layer?.description)},meta:n.meta,description:e(n.description),entity:n.entity,title:e(n.title)};case"category":return{id:n.id,name:e(n.name),exhibitors:r(n.exhibitors),entity:n.entity,slug:e(n.slug)};case"exhibitor":return{id:n.id,name:e(n.name),externalId:e(n.externalId),booths:r(n.booths),entity:n.entity,slug:e(n.slug)};case"schedule":return{id:n.id,externalId:e(n.externalId),boothId:n.boothId,exhibitorId:n.exhibitorId,name:e(n.name),description:e(n.description),startDate:e(n.startDate),endDate:e(n.endDate),link:e(n.link),entity:n.entity,isEnded:n.isEnded};case t:return{id:n.id,name:e(n.name),entity:n.entity};case"heatmap-yah":return{id:e(n.id),name:e(n.name),viewCount:n.viewCount||0,x:n.x||0,y:n.y||0,z:n.z,entity:n.entity};default:return n}}function r(n){return Array.isArray(n)?n.filter(Boolean).map(a=>a.id).filter(Boolean):[]}function e(n){return typeof n=="string"?n:""}