UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) 1.43 kB
import{autorun as l}from"mobx";import s from"../../data";import f from"../../tools/logger";import{generateUniqueSlug as g}from"../../tools/slug";import{getStorage as n,saveStorage as b}from"../../utils/entity-storage";import m from"../../utils/preview-exhibitor";import{Exhibitor as h}from"../ExhibitorStore";export default function k(i){if(m){const t=s.exhibitors.findIndex(e=>e.id===m.id);t!==-1?s.exhibitors.splice(t,1,m):s.exhibitors.push(m)}const{exhibitorStore:o}=i,r=s.exhibitors||[];r.sort((t,e)=>Number(e.featured)-Number(t.featured));for(const t of r){const e=new h;Object.assign(e,t),e.slug=g(e.name),e.rebookingState=e.rebookingState||0,e.logo=d(e.logo),e.gallery&&(e.gallery=e.gallery.map(a=>d(a))),e.marketMaterials&&(e.marketMaterials=e.marketMaterials.map(a=>({fileName:a.fileName,path:d(a.path)}))),e.leadingImageUrl=d(e.leadingImageUrl),e.categories=[],e.booths=[],e.store=o,o.exhibitors.push(e),e.schedule=null}f.log("initExhibitors",o.exhibitors.length),p(o),c(o)}function p(i){const o=n("bookmarked");i.replaceBookmarked(o.exhibitors),l(()=>{const r=n("bookmarked");b("bookmarked",{exhibitors:i.bookmarked?.map(t=>t.id),events:r.events,speakers:r.speakers,booths:r.booths})})}function c(i){const o=n("visited");i.replaceVisited(o.exhibitors),l(()=>{const r=n("visited");b("visited",{exhibitors:i.visited.map(t=>t.id),events:r.events})})}function d(i){return i&&i.indexOf("://")===-1?window.__dataUrlBase+i:i}