{"version":3,"file":"teleporterStore.mjs","names":["create","createTeleporter","TeleporterInstance","ReturnType","LocationEntry","teleporter","TeleporterMap","Map","TeleporterStore","teleporterMap","getTeleporter","targetId","location","getAllTeleporters","useTeleporterStore","set","get","mapCopy","locationMap","has","result","map","entries","entry","push"],"sources":["../../src/stores/teleporterStore.ts"],"sourcesContent":["import { create } from 'zustand';\nimport { createTeleporter } from 'react-teleporter';\n\ntype TeleporterInstance = ReturnType<typeof createTeleporter>;\n\ntype LocationEntry = {\n  teleporter: TeleporterInstance;\n};\n\ntype TeleporterMap = Map<string, Map<string, LocationEntry>>;\n\ninterface TeleporterStore {\n  teleporterMap: TeleporterMap;\n  getTeleporter: (targetId: string, location: string) => TeleporterInstance;\n  getAllTeleporters: () => [string, string, TeleporterInstance][];\n}\n\nexport const useTeleporterStore = create<TeleporterStore>((set, get) => ({\n  teleporterMap: new Map(),\n\n  getTeleporter: (targetId = '', location) => {\n    const mapCopy = new Map(get().teleporterMap); // clone to maintain reactivity\n    let locationMap = mapCopy.get(targetId);\n\n    if (!locationMap) {\n      locationMap = new Map();\n      mapCopy.set(targetId, locationMap);\n    }\n\n    if (!locationMap.has(location)) {\n      locationMap.set(location, {\n        teleporter: createTeleporter()\n      });\n    }\n\n    const teleporter = locationMap.get(location)!.teleporter;\n\n    // Update store\n    set({ teleporterMap: mapCopy });\n\n    return teleporter;\n  },\n\n  getAllTeleporters: () => {\n    const result: [string, string, TeleporterInstance][] = [];\n    const map = get().teleporterMap;\n\n    for (const [targetId, locationMap] of map.entries()) {\n      for (const [location, entry] of locationMap.entries()) {\n        result.push([targetId, location, entry.teleporter]);\n      }\n    }\n\n    return result;\n  }\n}));\n"],"mappings":";;;AAiBA,MAAac,qBAAqBd,QAAyBe,KAAKC,SAAS;CACvEP,+BAAe,IAAIF,KAAK;CAExBG,gBAAgBC,WAAW,IAAIC,aAAa;EAC1C,MAAMK,UAAU,IAAIV,IAAIS,KAAK,CAACP,cAAc;EAC5C,IAAIS,cAAcD,QAAQD,IAAIL,SAAS;AAEvC,MAAI,CAACO,aAAa;AAChBA,iCAAc,IAAIX,KAAK;AACvBU,WAAQF,IAAIJ,UAAUO,YAAY;;AAGpC,MAAI,CAACA,YAAYC,IAAIP,SAAS,CAC5BM,aAAYH,IAAIH,UAAU,EACxBP,YAAYJ,kBAAiB,EAC9B,CAAC;EAGJ,MAAMI,aAAaa,YAAYF,IAAIJ,SAAS,CAAEP;AAG9CU,MAAI,EAAEN,eAAeQ,SAAS,CAAC;AAE/B,SAAOZ;;CAGTQ,yBAAyB;EACvB,MAAMO,SAAiD,EAAE;EACzD,MAAMC,MAAML,KAAK,CAACP;AAElB,OAAK,MAAM,CAACE,UAAUO,gBAAgBG,IAAIC,SAAS,CACjD,MAAK,MAAM,CAACV,UAAUW,UAAUL,YAAYI,SAAS,CACnDF,QAAOI,KAAK;GAACb;GAAUC;GAAUW,MAAMlB;GAAW,CAAC;AAIvD,SAAOe;;CAEV,EAAE"}