Migrate to v4
In v4 every exhibition publishes its own floorplan.js — a tiny facade that pins the runtime version and embeds the manifest. Your integration becomes one import and one call: no package URL, no manifest $ref. The easiest migration is to copy the html already published at your exhibition's address — it is exactly this snippet.
Before (v3)
html
<script type="module">
import { load } from 'https://unpkg.com/@expofp/floorplan';
await load({ $ref: 'https://demo123.expofp.com/manifest.json' }, { noOverlay: true });
</script>After (v4)
html
<script type="module">
import { load } from 'https://demo123.expofp.com/floorplan.js';
await load({ noOverlay: true });
</script>- The import moves from the npm CDN to your exhibition's own
floorplan.js. It pins the runtime and embeds the manifest, soload()no longer takes a$ref— pass just the options bag (FloorPlanOptions), or nothing. - Replace
demo123with your event subdomain.
Demo
html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Migrate to v4 — ExpoFP SDK Example</title>
<script type="module">
import { load } from 'https://demo123.expofp.com/floorplan.js';
await load();
</script>
</head>
<body></body>
</html>More examples
The same FloorPlanOptions bag applies unchanged in v4 — only the import line changes (https://<your-subdomain>.expofp.com/floorplan.js, no $ref). A few common ones, still shown here in the v3 import style — swap the import line per Before/After above and the rest works as-is:
- No overlay — hide the whole overlay panel.
- No overlay with search buttons — hide the overlay but keep the search-filter buttons, opening the overlay on demand.
- No overlay with background — hide the overlay while keeping a background visible behind the map.
See the full examples gallery for the rest.