@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 1.04 kB
JavaScript
import k from"../../data";import s from"../../tools/logger";import{getStorage as r,saveStorage as a}from"../../utils/entity-storage";import{planAutorun as n}from"../../utils/plan-reactions.js";import{EventItem as m}from"../EventStore";export default function p(t){k.events?.forEach(e=>{const o=(e.speakers||[]).map(d=>t.speakerStore.addSpeaker({...d})),i=new m(e.id,e.externalId||e.id.toString(),e.boothId,e.name||`Event ${e.id}`,e.description||"",e.startDate,e.endDate,e.logoFile,o,e.tracks||[]);t.eventStore.eventItems.push(i)}),s.log("initEvents",t.eventStore.eventItems.length),s.log("initSpeakers",t.speakerStore.speakersMap.size),c(t.eventStore),v(t.eventStore)}function v(t){const e=r("visited");t.replaceVisited(e.events),n(()=>{const o=r("visited");a("visited",{exhibitors:o.exhibitors,events:t.visited.map(i=>i.id)})})}function c(t){const e=r("bookmarked");t.replaceBookmarked(e.events),n(()=>{const o=r("bookmarked");a("bookmarked",{exhibitors:o.exhibitors,events:t.bookmarked?.map(i=>i.id),speakers:o.speakers,booths:o.booths})})}